├── .github ├── FUNDING.yml ├── CONTRIBUTING.md ├── workflows │ └── labeler.yml ├── format-check.sh └── ISSUE_TEMPLATE │ ├── config.yml │ └── 3-blank_template.md ├── vita3k ├── host │ ├── CMakeLists.txt │ └── dialog │ │ └── CMakeLists.txt ├── Vita3K.ico ├── Vita3K.png ├── features │ └── CMakeLists.txt ├── ime │ ├── CMakeLists.txt │ └── include │ │ └── ime │ │ ├── functions.h │ │ └── state.h ├── http │ └── CMakeLists.txt ├── threads │ └── CMakeLists.txt ├── shaders-builtin │ ├── vulkan │ │ ├── render_main.frag.spv │ │ ├── render_main.vert.spv │ │ ├── fsr_filter_easu.comp.spv │ │ ├── fsr_filter_rcas.comp.spv │ │ ├── render_main_fxaa.frag.spv │ │ ├── render_main_bicubic.frag.spv │ │ ├── render_main.frag │ │ └── render_main.vert │ └── opengl │ │ ├── render_main.frag │ │ └── render_main.vert ├── dialog │ └── CMakeLists.txt ├── rtc │ └── CMakeLists.txt ├── touch │ ├── include │ │ └── touch │ │ │ ├── state.h │ │ │ └── functions.h │ └── CMakeLists.txt ├── patch │ ├── CMakeLists.txt │ └── include │ │ └── patch │ │ └── patch.h ├── nids │ ├── CMakeLists.txt │ ├── include │ │ └── nids │ │ │ ├── functions.h │ │ │ └── types.h │ └── src │ │ └── nids.cpp ├── motion │ ├── CMakeLists.txt │ └── include │ │ └── motion │ │ ├── event_handler.h │ │ └── state.h ├── audio │ └── CMakeLists.txt ├── compat │ ├── CMakeLists.txt │ └── include │ │ └── compat │ │ └── functions.h ├── gdbstub │ ├── CMakeLists.txt │ └── include │ │ └── gdbstub │ │ └── functions.h ├── lang │ ├── CMakeLists.txt │ └── include │ │ └── lang │ │ └── functions.h ├── regmgr │ ├── CMakeLists.txt │ └── include │ │ └── regmgr │ │ ├── types.h │ │ └── state.h ├── emuenv │ ├── CMakeLists.txt │ └── include │ │ └── emuenv │ │ └── window.h ├── vkutil │ └── CMakeLists.txt ├── glutil │ ├── CMakeLists.txt │ └── include │ │ └── glutil │ │ ├── gl.h │ │ └── shader.h ├── display │ ├── CMakeLists.txt │ └── include │ │ └── display │ │ └── functions.h ├── ctrl │ ├── CMakeLists.txt │ └── include │ │ └── ctrl │ │ └── functions.h ├── gxm │ ├── CMakeLists.txt │ └── src │ │ └── stream.cpp ├── codec │ └── CMakeLists.txt ├── np │ ├── CMakeLists.txt │ └── src │ │ └── init.cpp ├── net │ ├── CMakeLists.txt │ └── include │ │ └── net │ │ ├── epoll.h │ │ └── functions.h ├── config │ ├── CMakeLists.txt │ ├── include │ │ └── config │ │ │ └── version.h │ └── src │ │ └── version.cpp.in ├── script │ ├── update-macos.sh │ └── update-linux.sh ├── io │ ├── CMakeLists.txt │ └── include │ │ └── io │ │ ├── io.h │ │ ├── VitaIoDevice.h │ │ ├── vfs.h │ │ └── file.h ├── cpu │ ├── CMakeLists.txt │ └── include │ │ └── cpu │ │ ├── disasm │ │ ├── state.h │ │ └── functions.h │ │ └── state.h ├── module │ ├── CMakeLists.txt │ ├── src │ │ └── read_arg.cpp │ └── include │ │ └── module │ │ ├── args_layout.h │ │ └── bridge_types.h ├── mem │ └── CMakeLists.txt ├── app │ ├── CMakeLists.txt │ └── include │ │ └── app │ │ └── discord.h ├── util │ ├── CMakeLists.txt │ └── include │ │ └── util │ │ ├── keywords.h │ │ ├── overloaded.h │ │ ├── lock_and_find.h │ │ ├── preprocessor.h │ │ ├── safe_time.h │ │ ├── exit_code.h │ │ ├── find.h │ │ ├── bytes.h │ │ ├── hash.h │ │ ├── arm.h │ │ └── align.h ├── packages │ ├── CMakeLists.txt │ └── include │ │ └── packages │ │ └── functions.h ├── ngs │ ├── CMakeLists.txt │ ├── include │ │ └── ngs │ │ │ ├── state.h │ │ │ └── modules │ │ │ └── output.h │ └── src │ │ └── modules │ │ ├── delay.cpp │ │ ├── pauser.cpp │ │ └── reverb.cpp ├── shader │ ├── CMakeLists.txt │ ├── include │ │ └── shader │ │ │ ├── profile.h │ │ │ └── gxp_parser.h │ └── src │ │ └── translator │ │ └── illegal.cpp ├── modules │ ├── SceSysmem │ │ ├── SceCpu.cpp │ │ ├── SceSysmem.h │ │ ├── SceDipsw.cpp │ │ ├── SceProcEventForDriver.cpp │ │ ├── SceDebugLed.cpp │ │ └── SceDipswForDriver.cpp │ ├── include │ │ └── modules │ │ │ └── library_init_list.inc │ ├── ScePaf │ │ ├── ScePafWidget.cpp │ │ └── ScePafMisc.cpp │ ├── SceBgAppUtil │ │ └── SceBgAppUtil.cpp │ ├── SceLibKernel │ │ ├── SceLibSsp.cpp │ │ └── SceLibKernel.h │ ├── SceProcessmgr │ │ └── SceProcessmgr.h │ ├── SceSblSsMgr │ │ ├── SceSblAimgr.cpp │ │ └── SceSblDmac5Mgr.cpp │ ├── SceKernelModulemgr │ │ └── SceBacktrace.cpp │ ├── SceLibMono │ │ └── SceLibMono.cpp │ ├── SceMusicExport │ │ └── SceMusicExport.cpp │ ├── SceNet │ │ └── SceNet.h │ ├── SceSblACMgr │ │ └── SceSblACMgr.cpp │ ├── SceShutterSound │ │ └── SceShutterSound.cpp │ ├── SceVideoExport │ │ └── SceVideoExport.cpp │ ├── SceCoredump │ │ ├── SceCoredumpNounlink.cpp │ │ └── SceCoredump.cpp │ ├── SceAppUtil │ │ ├── SceAppUtilAddcontForce.cpp │ │ ├── SceAppUtilBook.cpp │ │ ├── SceAppUtilExt.cpp │ │ └── SceAppUtilCache.cpp │ ├── SceGxm │ │ ├── SceGxmInternalForReplay.cpp │ │ ├── SceGxmInternalForGles.cpp │ │ └── SceGxm.h │ ├── SceTeleportServer │ │ └── SceTeleportServer.cpp │ ├── SceKernelThreadMgr │ │ ├── SceThreadmgrForKernel.cpp │ │ └── SceThreadmgrCoredumpTime.cpp │ ├── SceShellSvc │ │ ├── SceShellUtilLaunchApp.cpp │ │ ├── SceShellUtil.cpp │ │ └── SceShellSvc.cpp │ ├── SceNotificationUtil │ │ ├── SceNotificationUtilBgApp.cpp │ │ ├── SceNotificationUtil.cpp │ │ └── SceNotificationUtilProgress.cpp │ ├── SceError │ │ └── SceError.h │ ├── SceKernelDmacMgr │ │ └── SceDmacmgr.cpp │ ├── SceNpDrm │ │ └── ScePsmDrm.cpp │ ├── SceClipboard │ │ └── SceClipboard.cpp │ ├── SceUlobjDbg │ │ └── SceUlobjDbg.cpp │ ├── SceUsbServ │ │ └── SceUsbServ.cpp │ ├── SceStdio │ │ └── SceStdio.cpp │ ├── SceSsl │ │ └── SceSslInternal.cpp │ ├── SceDriverUser │ │ ├── SceAppMgrUser.h │ │ └── SceDrmBridgeUser.cpp │ ├── SceUlobjMgr │ │ └── SceUlobjMgr.cpp │ ├── SceLocationExtension │ │ └── SceLibLocationExtension.cpp │ ├── SceGameUpdate │ │ └── SceGameUpdate.cpp │ ├── SceNpActivity │ │ └── SceNpActivity.cpp │ ├── SceUsbstorVStorDriver │ │ └── SceUsbstorVStor.cpp │ ├── SceCodecEnginePerf │ │ └── SceCodecEnginePerf.cpp │ ├── ScePhotoExport │ │ └── ScePhotoExport.cpp │ ├── SceVshBridge │ │ └── SceDrmBridge.cpp │ ├── SceWlanBt │ │ └── SceWlan.cpp │ ├── SceRegistryMgr │ │ └── SceRegMgrService.cpp │ ├── SceSblPostSsMgr │ │ ├── SceSblUtMgr.cpp │ │ └── SceSblPmMgr.cpp │ ├── SceNetInternal │ │ └── SceNetInternal.cpp │ ├── SceUdcd │ │ └── SceUdcd.cpp │ ├── SceDTrace │ │ └── SceDTrace.cpp │ ├── SceIofilemgr │ │ └── SceIofilemgr.h │ ├── SceJpegArm │ │ └── SceJpegArm.cpp │ ├── SceIncomingDialog │ │ └── SceIncomingDialog.cpp │ ├── SceRtc │ │ └── SceRtc.h │ ├── SceGpuEs4 │ │ └── SceGpuEs4ForUser.cpp │ └── SceUsbSerial │ │ └── SceUsbSerial.cpp ├── kernel │ ├── CMakeLists.txt │ └── include │ │ └── kernel │ │ └── load_self.h ├── renderer │ ├── src │ │ └── vulkan │ │ │ └── allocator.cpp │ └── include │ │ └── renderer │ │ ├── profile.h │ │ └── gl │ │ └── fence.h ├── performance.cpp ├── Windows.manifest └── resource.h ├── data ├── image │ └── icon.png └── fonts │ ├── mplus-1mn-bold.ttf │ ├── SourceHanSansSC-Bold-Min.ttf │ ├── LICENSE_J │ └── LICENSE_E ├── _building └── vs-cmd-prompt.png ├── _readme └── screenshots │ ├── P4G.png │ ├── Fruit Ninja.png │ ├── VA-11 HALL-A.png │ ├── Alone With You.png │ ├── Jetpack Joyride.png │ └── A Rose in the Twilight.png ├── tools ├── native-tool │ ├── sce_sys │ │ ├── icon0.png │ │ └── livearea │ │ │ └── contents │ │ │ ├── bg.png │ │ │ ├── startup.png │ │ │ └── template.xml │ └── src │ │ ├── shaders │ │ ├── clear_f.gxp │ │ ├── clear_v.gxp │ │ ├── color_f.gxp │ │ ├── color_v.gxp │ │ ├── texture_f.gxp │ │ ├── texture_v.gxp │ │ └── texture_tint_f.gxp │ │ └── shaders.h ├── gen-modules │ └── CMakeLists.txt └── dir_doc.cpp ├── appimage ├── build.sh ├── apprun.sh ├── vita3k.desktop └── build_updater.sh ├── gen-linux.sh ├── format.sh ├── format.bat ├── gen-windows.bat ├── .gitignore ├── .gitattributes └── external ├── CppCommon ├── include │ ├── environment.h │ └── cpu.h └── LICENSE ├── ddspp └── LICENSE └── miniz └── LICENSE /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: Vita3K 2 | -------------------------------------------------------------------------------- /vita3k/host/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(dialog) 2 | -------------------------------------------------------------------------------- /vita3k/Vita3K.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/Vita3K.ico -------------------------------------------------------------------------------- /vita3k/Vita3K.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/Vita3K.png -------------------------------------------------------------------------------- /data/image/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/data/image/icon.png -------------------------------------------------------------------------------- /_building/vs-cmd-prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_building/vs-cmd-prompt.png -------------------------------------------------------------------------------- /_readme/screenshots/P4G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_readme/screenshots/P4G.png -------------------------------------------------------------------------------- /data/fonts/mplus-1mn-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/data/fonts/mplus-1mn-bold.ttf -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Please see the [Wiki](https://github.com/Vita3K/Vita3K/wiki) for developer information. 2 | -------------------------------------------------------------------------------- /_readme/screenshots/Fruit Ninja.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_readme/screenshots/Fruit Ninja.png -------------------------------------------------------------------------------- /tools/native-tool/sce_sys/icon0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/sce_sys/icon0.png -------------------------------------------------------------------------------- /_readme/screenshots/VA-11 HALL-A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_readme/screenshots/VA-11 HALL-A.png -------------------------------------------------------------------------------- /_readme/screenshots/Alone With You.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_readme/screenshots/Alone With You.png -------------------------------------------------------------------------------- /_readme/screenshots/Jetpack Joyride.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_readme/screenshots/Jetpack Joyride.png -------------------------------------------------------------------------------- /appimage/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Executing linuxdeploy with cmdline: LDAI_VERBOSE=1 $@" 4 | 5 | LDAI_VERBOSE=1 $@ 6 | -------------------------------------------------------------------------------- /data/fonts/SourceHanSansSC-Bold-Min.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/data/fonts/SourceHanSansSC-Bold-Min.ttf -------------------------------------------------------------------------------- /vita3k/features/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(features INTERFACE) 2 | target_include_directories(features INTERFACE include) 3 | -------------------------------------------------------------------------------- /gen-linux.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | # Generate project files for Ninja 5 | cmake --preset linux-ninja-clang 6 | -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/clear_f.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/clear_f.gxp -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/clear_v.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/clear_v.gxp -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/color_f.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/color_f.gxp -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/color_v.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/color_v.gxp -------------------------------------------------------------------------------- /tools/gen-modules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(gen-modules gen-modules.cpp) 2 | target_link_libraries(gen-modules PRIVATE yaml-cpp) 3 | -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/texture_f.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/texture_f.gxp -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/texture_v.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/texture_v.gxp -------------------------------------------------------------------------------- /vita3k/ime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | ime 3 | INTERFACE 4 | ) 5 | 6 | target_include_directories(ime INTERFACE include) 7 | -------------------------------------------------------------------------------- /_readme/screenshots/A Rose in the Twilight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/_readme/screenshots/A Rose in the Twilight.png -------------------------------------------------------------------------------- /vita3k/http/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | http 3 | INTERFACE 4 | ) 5 | 6 | target_include_directories(http INTERFACE include) 7 | -------------------------------------------------------------------------------- /vita3k/threads/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | threads 3 | INTERFACE 4 | ) 5 | 6 | target_include_directories(threads INTERFACE include) 7 | -------------------------------------------------------------------------------- /tools/native-tool/sce_sys/livearea/contents/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/sce_sys/livearea/contents/bg.png -------------------------------------------------------------------------------- /tools/native-tool/src/shaders/texture_tint_f.gxp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/src/shaders/texture_tint_f.gxp -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/render_main.frag.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/shaders-builtin/vulkan/render_main.frag.spv -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/render_main.vert.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/shaders-builtin/vulkan/render_main.vert.spv -------------------------------------------------------------------------------- /appimage/apprun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ "${APPIMAGE}" != "" ]; then 3 | export PATH="$APPDIR/usr/bin:$PATH" 4 | "${APPDIR}/usr/bin/Vita3K" $@ 5 | fi 6 | -------------------------------------------------------------------------------- /appimage/vita3k.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Vita3K 4 | Exec=Vita3K 5 | Icon=vita3k 6 | Categories=Game;Emulator;X-None; 7 | -------------------------------------------------------------------------------- /format.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | find vita3k tools/gen-modules tools/native-tool \( -name *.cpp -o -name *.h \) | xargs clang-format -i 5 | -------------------------------------------------------------------------------- /tools/native-tool/sce_sys/livearea/contents/startup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/tools/native-tool/sce_sys/livearea/contents/startup.png -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/fsr_filter_easu.comp.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/shaders-builtin/vulkan/fsr_filter_easu.comp.spv -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/fsr_filter_rcas.comp.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/shaders-builtin/vulkan/fsr_filter_rcas.comp.spv -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/render_main_fxaa.frag.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/shaders-builtin/vulkan/render_main_fxaa.frag.spv -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/render_main_bicubic.frag.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macdu/Vita3K/HEAD/vita3k/shaders-builtin/vulkan/render_main_bicubic.frag.spv -------------------------------------------------------------------------------- /format.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | cd vita3k 3 | for /f %%f in ('dir *.cpp *.h /b/s') do clang-format -i %%f 4 | cd ..\tools 5 | for /f %%f in ('dir *.cpp *.h /b/s') do clang-format -i %%f 6 | cd .. 7 | -------------------------------------------------------------------------------- /gen-windows.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | title Generate Vita3K project files 3 | 4 | REM Generate project files for your last Visual Studio version you have 5 | call cmake -S . -B build 6 | pause 7 | -------------------------------------------------------------------------------- /vita3k/dialog/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | dialog 3 | INTERFACE 4 | ) 5 | 6 | target_include_directories(dialog INTERFACE include) 7 | target_link_libraries(dialog INTERFACE lang io) 8 | -------------------------------------------------------------------------------- /vita3k/rtc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | rtc 3 | STATIC 4 | include/rtc/rtc.h 5 | src/rtc.cpp 6 | ) 7 | 8 | target_include_directories(rtc PUBLIC include) 9 | target_link_libraries(rtc PUBLIC util) 10 | -------------------------------------------------------------------------------- /vita3k/touch/include/touch/state.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct TouchState { 6 | SceTouchSamplingState touch_mode[2] = { SCE_TOUCH_SAMPLING_STATE_STOP, SCE_TOUCH_SAMPLING_STATE_STOP }; 7 | }; 8 | -------------------------------------------------------------------------------- /vita3k/patch/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | patch 3 | STATIC 4 | include/patch/patch.h 5 | src/patch.cpp 6 | ) 7 | 8 | target_include_directories(patch PUBLIC include) 9 | target_link_libraries(patch PRIVATE util) 10 | -------------------------------------------------------------------------------- /vita3k/nids/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | nids 3 | STATIC 4 | include/nids/functions.h 5 | include/nids/nids.inc 6 | include/nids/types.h 7 | src/nids.cpp 8 | ) 9 | 10 | target_include_directories(nids PUBLIC include) 11 | -------------------------------------------------------------------------------- /vita3k/motion/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | motion 3 | STATIC 4 | src/motion.cpp 5 | src/motion_input.cpp 6 | ) 7 | 8 | target_include_directories(motion PUBLIC include) 9 | target_link_libraries(motion PUBLIC emuenv SDL3::SDL3 util) 10 | target_link_libraries(motion PRIVATE ctrl) 11 | -------------------------------------------------------------------------------- /data/fonts/LICENSE_J: -------------------------------------------------------------------------------- 1 | M+ FONTS Copyright (C) 2002-2017 M+ FONTS PROJECT 2 | 3 | - 4 | 5 | LICENSE_J 6 | 7 | 8 | 9 | 10 | これらのフォントはフリー(自由な)ソフトウエアです。 11 | あらゆる改変の有無に関わらず、また商業的な利用であっても、自由にご利用、 12 | 複製、再配布することができますが、全て無保証とさせていただきます。 13 | 14 | 15 | http://mplus-fonts.osdn.jp 16 | -------------------------------------------------------------------------------- /vita3k/audio/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | audio 3 | STATIC 4 | src/audio.cpp 5 | src/impl/sdl_audio.cpp 6 | src/impl/cubeb_audio.cpp) 7 | 8 | target_include_directories(audio PUBLIC include) 9 | target_link_libraries(audio PUBLIC SDL3::SDL3) 10 | target_link_libraries(audio PRIVATE util cubeb kernel) 11 | -------------------------------------------------------------------------------- /vita3k/compat/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | compat 3 | STATIC 4 | include/compat/functions.h 5 | include/compat/state.h 6 | src/compat.cpp 7 | ) 8 | 9 | target_include_directories(compat PUBLIC include) 10 | target_link_libraries(compat PUBLIC gui emuenv) 11 | target_link_libraries(compat PRIVATE pugixml::pugixml miniz) 12 | -------------------------------------------------------------------------------- /vita3k/gdbstub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | gdbstub 3 | STATIC 4 | include/gdbstub/functions.h 5 | include/gdbstub/state.h 6 | src/gdb.cpp 7 | ) 8 | 9 | target_include_directories(gdbstub PUBLIC include) 10 | target_link_libraries(gdbstub PUBLIC cpu emuenv) 11 | target_link_libraries(gdbstub PRIVATE kernel) 12 | -------------------------------------------------------------------------------- /vita3k/lang/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | lang 3 | STATIC 4 | include/lang/state.h 5 | include/lang/functions.h 6 | src/lang.cpp 7 | ) 8 | 9 | target_include_directories(lang PUBLIC include) 10 | target_link_libraries(lang PUBLIC emuenv compat ime) 11 | target_link_libraries(lang PRIVATE config gui pugixml::pugixml util) 12 | -------------------------------------------------------------------------------- /vita3k/regmgr/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | regmgr 3 | STATIC 4 | include/regmgr/functions.h 5 | include/regmgr/state.h 6 | include/regmgr/types.h 7 | src/regmgr.cpp 8 | ) 9 | 10 | target_include_directories(regmgr PUBLIC include) 11 | target_include_directories(regmgr PRIVATE) 12 | target_link_libraries(regmgr PUBLIC util) 13 | -------------------------------------------------------------------------------- /vita3k/emuenv/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | emuenv 3 | STATIC 4 | src/emuenv.cpp) 5 | 6 | target_include_directories(emuenv INTERFACE include) 7 | target_link_libraries(emuenv PUBLIC mem) 8 | target_link_libraries(emuenv PRIVATE audio config ctrl dialog display ime io kernel motion net ngs nids np regmgr renderer touch gdbstub packages http) 9 | -------------------------------------------------------------------------------- /vita3k/vkutil/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | vkutil 3 | STATIC 4 | include/vkutil/objects.h 5 | include/vkutil/vkutil.h 6 | 7 | src/objects.cpp 8 | src/vkutil.cpp 9 | ) 10 | 11 | target_include_directories(vkutil PUBLIC include) 12 | target_link_libraries(vkutil PUBLIC vulkan vma) 13 | target_link_libraries(vkutil PRIVATE util) 14 | -------------------------------------------------------------------------------- /tools/native-tool/sce_sys/livearea/contents/template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bg.png 6 | 7 | 8 | 9 | startup.png 10 | 11 | 12 | -------------------------------------------------------------------------------- /vita3k/glutil/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | glutil 3 | STATIC 4 | include/glutil/gl.h 5 | include/glutil/object.h 6 | include/glutil/object_array.h 7 | include/glutil/shader.h 8 | src/object.cpp 9 | src/shader.cpp 10 | ) 11 | 12 | target_include_directories(glutil PUBLIC include) 13 | target_link_libraries(glutil PUBLIC glad util) 14 | -------------------------------------------------------------------------------- /vita3k/touch/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | touch 3 | STATIC 4 | include/touch/functions.h 5 | include/touch/state.h 6 | include/touch/touch.h 7 | src/touch.cpp 8 | ) 9 | 10 | target_include_directories(touch PUBLIC include) 11 | target_link_libraries(touch PUBLIC emuenv) 12 | target_link_libraries(touch PRIVATE display SDL3::SDL3) 13 | -------------------------------------------------------------------------------- /vita3k/display/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | display 3 | STATIC 4 | include/display/state.h 5 | include/display/functions.h 6 | src/display.cpp 7 | ) 8 | 9 | target_include_directories(display PUBLIC include) 10 | target_link_libraries(display PUBLIC emuenv kernel) 11 | target_link_libraries(display PRIVATE touch renderer dialog motion) 12 | -------------------------------------------------------------------------------- /vita3k/ctrl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | ctrl 3 | STATIC 4 | include/ctrl/ctrl.h 5 | include/ctrl/functions.h 6 | include/ctrl/state.h 7 | src/ctrl.cpp 8 | ) 9 | 10 | target_include_directories(ctrl PUBLIC include) 11 | target_link_libraries(ctrl PUBLIC emuenv SDL3::SDL3 util) 12 | target_link_libraries(ctrl PRIVATE config dialog display kernel) 13 | 14 | -------------------------------------------------------------------------------- /vita3k/host/dialog/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(host_dialog STATIC 2 | src/filesystem.cpp 3 | ) 4 | 5 | # Create alias for more friendly naming and avoid conflicts 6 | # in global CMake scope 7 | add_library(host::dialog ALIAS host_dialog) 8 | 9 | target_include_directories(host_dialog PUBLIC include) 10 | 11 | target_link_libraries(host_dialog PRIVATE NFDe::NFDe) 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /api.trace 2 | .vs/ 3 | /external/boost-build 4 | .idea/ 5 | cmake-build-*/ 6 | .vs 7 | .vscode 8 | build 9 | # generated on macOS 10 | .DS_Store 11 | # generated by Doxygen 12 | /docs/html/ 13 | # clangd cache 14 | .cache 15 | # CMake user presets 16 | CMakeUserPresets.json 17 | compile_commands.json 18 | # AppImage builder 19 | appimage/linuxdeploy.AppImage 20 | /.gdbinit 21 | -------------------------------------------------------------------------------- /vita3k/gxm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | gxm 3 | STATIC 4 | include/gxm/functions.h 5 | include/gxm/state.h 6 | include/gxm/types.h 7 | src/attributes.cpp 8 | src/color.cpp 9 | src/gxp.cpp 10 | src/stream.cpp 11 | src/textures.cpp 12 | src/transfer.cpp 13 | ) 14 | 15 | target_include_directories(gxm PUBLIC include) 16 | target_link_libraries(gxm PUBLIC util) 17 | target_link_libraries(gxm PRIVATE) 18 | -------------------------------------------------------------------------------- /data/fonts/LICENSE_E: -------------------------------------------------------------------------------- 1 | M+ FONTS Copyright (C) 2002-2017 M+ FONTS PROJECT 2 | 3 | - 4 | 5 | LICENSE_E 6 | 7 | 8 | 9 | 10 | These fonts are free software. 11 | Unlimited permission is granted to use, copy, and distribute them, with 12 | or without modification, either commercially or noncommercially. 13 | THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY. 14 | 15 | 16 | http://mplus-fonts.osdn.jp 17 | -------------------------------------------------------------------------------- /vita3k/codec/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | codec 3 | STATIC 4 | include/codec/state.h 5 | include/codec/types.h 6 | src/atrac9.cpp 7 | src/decoder.cpp 8 | src/aac.cpp 9 | src/h264.cpp 10 | src/mjpeg.cpp 11 | src/mp3.cpp 12 | src/pcm.cpp 13 | src/player.cpp 14 | ) 15 | 16 | target_include_directories(codec PUBLIC include) 17 | target_link_libraries(codec PRIVATE ffmpeg libatrac9 util) 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Properly detect files as C++ on Github 2 | *.h linguist-language=cpp 3 | *.inc linguist-language=cpp 4 | *.frag linguist-language=GLSL 5 | *.vert linguist-language=GLSL 6 | 7 | src/external/* linguist-vendored 8 | 9 | # Enforce line endings to LF for cross-compiling 10 | *.cpp eol=lf 11 | *.inc eol=lf 12 | *.frag eol=lf 13 | *.vert eol=lf 14 | *.h eol=lf 15 | *.sh eol=lf 16 | 17 | *.bat eol=crlf 18 | -------------------------------------------------------------------------------- /.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: "Pull Request Labeler" 2 | 3 | on: 4 | - pull_request_target 5 | 6 | jobs: 7 | labeler: 8 | if: github.repository == 'Vita3K/Vita3K' 9 | permissions: 10 | contents: read 11 | pull-requests: write 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/labeler@v5.0.0 15 | with: 16 | repo-token: "${{ secrets.GITHUB_TOKEN }}" 17 | sync-labels: true 18 | -------------------------------------------------------------------------------- /vita3k/np/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(np 2 | include/np/trophy/context.h 3 | include/np/trophy/trp_parser.h 4 | include/np/common.h 5 | include/np/functions.h 6 | include/np/state.h 7 | src/trophy/context.cpp 8 | src/trophy/trp_parser.cpp 9 | src/init.cpp 10 | ) 11 | 12 | target_include_directories(np PUBLIC include) 13 | target_link_libraries(np PUBLIC mem) 14 | target_link_libraries(np PRIVATE io util pugixml::pugixml) 15 | -------------------------------------------------------------------------------- /vita3k/net/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | net 3 | STATIC 4 | include/net/epoll.h 5 | include/net/functions.h 6 | include/net/state.h 7 | include/net/types.h 8 | include/net/socket.h 9 | src/epoll.cpp 10 | src/posixsocket.cpp 11 | src/p2psocket.cpp 12 | ) 13 | 14 | target_include_directories(net PUBLIC include) 15 | target_link_libraries(net PUBLIC mem) 16 | if (WIN32) 17 | target_link_libraries(net PRIVATE winsock) 18 | endif() 19 | -------------------------------------------------------------------------------- /vita3k/config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | config 3 | STATIC 4 | include/config/config.h 5 | include/config/functions.h 6 | include/config/state.h 7 | include/config/version.h 8 | src/config.cpp 9 | version.cpp 10 | ) 11 | 12 | configure_file(src/version.cpp.in version.cpp) 13 | 14 | target_include_directories(config PUBLIC include) 15 | target_link_libraries(config PUBLIC util) 16 | target_link_libraries(config PRIVATE CLI11 yaml-cpp) 17 | target_link_libraries(config PRIVATE tracy) 18 | -------------------------------------------------------------------------------- /.github/format-check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then 6 | git fetch origin $GITHUB_BASE_REF:refs/remotes/origin/$GITHUB_BASE_REF 7 | for f in $(git diff --diff-filter=AM --name-only origin/$GITHUB_BASE_REF 'vita3k/**.cpp' 'vita3k/**.h' 'tools/**.cpp' 'tools/**.h'); do 8 | if [ "$(diff -u <(cat $f) <(clang-format $f))" != "" ] 9 | then 10 | echo "run format" 11 | exit 1 12 | fi 13 | done 14 | fi -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Vita3K Discord 4 | url: https://discord.gg/6aGwQzh 5 | about: Please ask questions or seek tech support on Discord 6 | - name: Report game compatibility 7 | url: https://github.com/Vita3K/compatibility 8 | about: Please report game compatibility and regressions here 9 | - name: Android 10 | url: https://github.com/Vita3K/Vita3K-Android/issues 11 | about: Please open Android specific issues here 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/3-blank_template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Blank Template 3 | about: Templates for anything that is not a bug report or feature request 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Please do not ask for help or report compatibility regressions here, use [Vita3K Discord server](https://discord.gg/6aGwQzh) or [compatibility issue tracker](https://github.com/Vita3K/compatibility) instead. 11 | 12 | Please be careful when using this template. 13 | Make sure you have provided the necessary information. 14 | -------------------------------------------------------------------------------- /appimage/build_updater.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Note: The documentation at https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/blob/master/README.md for embedding update info is wrong. 4 | # The correct env-variable name to use is UPDATE_INFORMATION, and *not* LDAI_UPDATE_INFORMATION. 5 | 6 | echo "Executing linuxdeploy with cmdline: LDAI_VERBOSE=1 UPDATE_INFORMATION=\"gh-releases-zsync|Vita3K|Vita3K|latest|Vita3K-x86_64.AppImage.zsync\" $@" 7 | 8 | LDAI_VERBOSE=1 UPDATE_INFORMATION="gh-releases-zsync|Vita3K|Vita3K|latest|Vita3K-x86_64.AppImage.zsync" $@ 9 | -------------------------------------------------------------------------------- /vita3k/script/update-macos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | DIR="$(dirname "$0")" 3 | APP_PATH="$(dirname "$0")/../../.." 4 | 5 | if [ ! -e "$DIR"/vita3k-latest.dmg ]; then 6 | curl -L https://github.com/Vita3K/Vita3K/releases/download/continuous/macos-latest.dmg -o "$DIR"/vita3k-latest.dmg 7 | fi 8 | 9 | hdiutil attach "$DIR"/vita3k-latest.dmg 10 | cp -Rf -p /Volumes/Vita3K\ Installer/Vita3K.app "$APP_PATH" 11 | diskutil eject 'Vita3K Installer' 12 | rm -f "$DIR"/vita3k-latest.dmg 13 | xattr -d com.apple.quarantine "$APP_PATH"/Vita3K.app 14 | open "$APP_PATH"/Vita3K.app 15 | -------------------------------------------------------------------------------- /vita3k/io/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | io 3 | STATIC 4 | include/io/device.h 5 | include/io/file.h 6 | include/io/filesystem.h 7 | include/io/functions.h 8 | include/io/io.h 9 | include/io/state.h 10 | include/io/types.h 11 | include/io/util.h 12 | include/io/vfs.h 13 | include/io/VitaIoDevice.h 14 | src/device.cpp 15 | src/file.cpp 16 | src/filesystem.cpp 17 | src/io.cpp 18 | src/state_functions.cpp 19 | ) 20 | 21 | target_include_directories(io PUBLIC include) 22 | target_link_libraries(io PUBLIC better-enums dirent mem rtc util emuenv) 23 | -------------------------------------------------------------------------------- /vita3k/touch/include/touch/functions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | 7 | std::vector get_touchpad_fingers_pos(SceTouchPortType &port); 8 | int handle_touchpad_event(SDL_GamepadTouchpadEvent &touchpad); 9 | void touch_vsync_update(const EmuEnvState &emuenv); 10 | int handle_touch_event(SDL_TouchFingerEvent &finger); 11 | int toggle_touchscreen(); 12 | int touch_get(const SceUID thread_id, EmuEnvState &emuenv, const SceUInt32 &port, SceTouchData *pData, SceUInt32 count, bool is_peek); 13 | void touch_set_force_mode(int port, bool mode); 14 | -------------------------------------------------------------------------------- /vita3k/net/include/net/epoll.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct EpollSocket { 6 | unsigned int events; 7 | SceNetEpollData data; 8 | abs_socket sock; 9 | }; 10 | 11 | struct Epoll { 12 | std::map eventEntries; 13 | 14 | int add(int id, abs_socket sock, SceNetEpollEvent *ev); 15 | int del(int id, abs_socket sock, SceNetEpollEvent *ev); 16 | int mod(int id, abs_socket sock, SceNetEpollEvent *ev); 17 | int wait(SceNetEpollEvent *events, int maxevents, int timeout); 18 | }; 19 | 20 | typedef std::shared_ptr EpollPtr; 21 | -------------------------------------------------------------------------------- /vita3k/cpu/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SOURCE_LIST 2 | include/cpu/state.h 3 | include/cpu/common.h 4 | include/cpu/functions.h 5 | include/cpu/impl/dynarmic_cpu.h 6 | include/cpu/impl/interface.h 7 | include/cpu/disasm/functions.h 8 | include/cpu/disasm/state.h 9 | 10 | src/disasm.cpp 11 | src/cpu.cpp 12 | src/dynarmic_cpu.cpp 13 | ) 14 | 15 | add_library( 16 | cpu 17 | STATIC 18 | ${SOURCE_LIST} 19 | ) 20 | 21 | source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE_LIST}) 22 | 23 | target_include_directories(cpu PUBLIC include) 24 | target_link_libraries(cpu PUBLIC mem util) 25 | target_link_libraries(cpu PRIVATE dynarmic capstone merry::mcl) 26 | -------------------------------------------------------------------------------- /vita3k/module/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | module 3 | STATIC 4 | src/load_module.cpp 5 | src/read_arg.cpp 6 | src/write_return_value.cpp 7 | ) 8 | 9 | target_include_directories(module PUBLIC include) 10 | target_link_libraries(module PUBLIC config cpu emuenv kernel util) 11 | if(TRACY_ENABLE_ON_CORE_COMPONENTS) 12 | target_link_libraries(module PUBLIC tracy) 13 | endif() 14 | 15 | add_executable( 16 | module-tests 17 | tests/arg_layout_tests.cpp 18 | ) 19 | 20 | target_include_directories(module-tests PRIVATE include) 21 | target_link_libraries(module-tests PRIVATE googletest util) 22 | add_test(NAME module COMMAND module-tests) 23 | -------------------------------------------------------------------------------- /vita3k/mem/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | mem 3 | STATIC 4 | include/mem/allocator.h 5 | include/mem/atomic.h 6 | include/mem/functions.h 7 | include/mem/mempool.h 8 | include/mem/block.h 9 | include/mem/ptr.h 10 | include/mem/state.h 11 | include/mem/util.h 12 | src/allocator.cpp 13 | src/mem.cpp 14 | ) 15 | 16 | target_include_directories(mem PUBLIC include) 17 | target_link_libraries(mem PUBLIC util) 18 | 19 | add_executable( 20 | mem-tests 21 | tests/allocator_tests.cpp 22 | ) 23 | 24 | target_include_directories(mem-tests PRIVATE include) 25 | target_link_libraries(mem-tests PRIVATE mem googletest util) 26 | add_test(NAME mem COMMAND mem-tests) 27 | -------------------------------------------------------------------------------- /vita3k/app/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | app 3 | STATIC 4 | include/app/functions.h 5 | include/app/discord.h 6 | src/app_init.cpp 7 | src/app.cpp 8 | src/discord.cpp 9 | ) 10 | 11 | target_include_directories(app PUBLIC include) 12 | target_link_libraries(app PUBLIC emuenv mem) 13 | if(USE_DISCORD_RICH_PRESENCE) 14 | target_link_libraries(app PUBLIC discord-rpc) 15 | endif() 16 | target_link_libraries(app PRIVATE audio config display gdbstub gui io ngs renderer SDL3::SDL3) 17 | if(WIN32) 18 | target_link_libraries(app PRIVATE dwmapi) 19 | endif() 20 | 21 | if (LINUX) 22 | find_package(X11 REQUIRED) 23 | target_link_libraries(app PRIVATE ${X11_LIBRARIES}) 24 | endif() 25 | -------------------------------------------------------------------------------- /vita3k/util/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | util 3 | STATIC 4 | src/arm.cpp 5 | src/byte.cpp 6 | src/float_to_half.cpp 7 | src/fs_utils.cpp 8 | src/hash.cpp 9 | src/instrset_detect.cpp 10 | src/logging.cpp 11 | src/net_utils.cpp 12 | src/string_utils.cpp 13 | src/tracy.cpp 14 | ) 15 | 16 | # vc_runtime_checker.cpp is directly added from the main CMakeList (for some reason adding it here doesn't work) 17 | 18 | target_include_directories(util PUBLIC include) 19 | target_link_libraries(util PUBLIC ${Boost_LIBRARIES} fmt spdlog http mem) 20 | target_link_libraries(util PRIVATE libcurl crypto) 21 | target_compile_definitions(util PRIVATE $<$:TRACY_ENABLE>) 22 | -------------------------------------------------------------------------------- /vita3k/packages/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(packages STATIC 2 | src/exfat.cpp 3 | src/license.cpp 4 | src/pkg.cpp 5 | src/pup.cpp 6 | src/sce_utils.cpp 7 | src/sfo.cpp 8 | include/packages/exfat.h 9 | include/packages/license.h 10 | include/packages/functions.h 11 | include/packages/pkg.h 12 | include/packages/sce_types.h 13 | include/packages/sfo.h 14 | ) 15 | target_include_directories(packages PUBLIC include) 16 | target_link_libraries(packages PUBLIC emuenv util) 17 | target_link_libraries(packages PRIVATE config crypto emuenv FAT16 io miniz psvpfsparser vita-toolchain) 18 | -------------------------------------------------------------------------------- /vita3k/ngs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | ngs 3 | STATIC 4 | src/modules/atrac9.cpp 5 | src/modules/compressor.cpp 6 | src/modules/delay.cpp 7 | src/modules/distortion.cpp 8 | src/modules/envelope.cpp 9 | src/modules/equalizer.cpp 10 | src/modules/filter.cpp 11 | src/modules/generator.cpp 12 | src/modules/mixer.cpp 13 | src/modules/output.cpp 14 | src/modules/pauser.cpp 15 | src/modules/pitchshift.cpp 16 | src/modules/player.cpp 17 | src/modules/reverb.cpp 18 | src/definitions.cpp 19 | src/ngs.cpp 20 | src/route.cpp 21 | src/scheduler.cpp) 22 | 23 | target_include_directories(ngs PUBLIC include) 24 | target_link_libraries(ngs PUBLIC codec) 25 | target_link_libraries(ngs PRIVATE util mem kernel cpu ffmpeg) 26 | -------------------------------------------------------------------------------- /vita3k/shader/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library( 2 | shader 3 | STATIC 4 | src/translator/alu.cpp 5 | src/translator/ialu.cpp 6 | src/translator/branch_cond.cpp 7 | src/translator/data.cpp 8 | src/translator/special.cpp 9 | src/translator/illegal.cpp 10 | src/translator/texture.cpp 11 | src/translator/utils.cpp 12 | src/gxp_parser.cpp 13 | src/usse_disasm.cpp 14 | src/usse_program_analyzer.cpp 15 | src/usse_decode_helpers.cpp 16 | src/usse_translator_entry.cpp 17 | src/usse_utilities.cpp 18 | src/spirv_recompiler.cpp 19 | ) 20 | 21 | target_include_directories(shader PUBLIC include) 22 | target_link_libraries(shader PUBLIC features gxm util) 23 | target_link_libraries(shader PRIVATE SPIRV spirv-cross-glsl) 24 | 25 | # Marshmallow Tracy linking 26 | if(TRACY_ENABLE_ON_CORE_COMPONENTS) 27 | target_link_libraries(shader PRIVATE tracy) 28 | endif() 29 | 30 | -------------------------------------------------------------------------------- /external/CppCommon/include/environment.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file environment.h 3 | \brief Environment management definition 4 | \author Ivan Shynkarenka 5 | \date 27.07.2016 6 | \copyright MIT License 7 | */ 8 | 9 | #ifndef CPPCOMMON_SYSTEM_ENVIRONMENT_H 10 | #define CPPCOMMON_SYSTEM_ENVIRONMENT_H 11 | 12 | #include 13 | 14 | namespace CppCommon { 15 | 16 | //! Environment management static class 17 | /*! 18 | Provides environment management functionality to get OS bit version, process bit version, 19 | debug/release mode. 20 | 21 | Thread-safe. 22 | */ 23 | 24 | class Environment { 25 | public: 26 | //! Get OS version string 27 | static std::string OSVersion(); 28 | }; 29 | 30 | /*! \example system_environment.cpp Environment management example */ 31 | 32 | } // namespace CppCommon 33 | 34 | #endif // CPPCOMMON_SYSTEM_ENVIRONMENT_H 35 | -------------------------------------------------------------------------------- /vita3k/glutil/include/glutil/gl.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #undef APIENTRY 22 | -------------------------------------------------------------------------------- /vita3k/net/include/net/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | struct NetState; 21 | 22 | bool init(NetState &state); 23 | -------------------------------------------------------------------------------- /vita3k/nids/include/nids/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | const char *import_name(uint32_t nid); 23 | -------------------------------------------------------------------------------- /vita3k/util/include/util/keywords.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #if defined(_MSC_VER) 21 | #define __restrict__ __restrict 22 | #endif 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceSysmem/SceCpu.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceKernelGetCpuId) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/include/modules/library_init_list.inc: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | LIBRARY(SceAudiodec) 19 | LIBRARY(SceFiber) 20 | LIBRARY(SceSharedFb) 21 | LIBRARY(SceSysmem) 22 | -------------------------------------------------------------------------------- /vita3k/modules/ScePaf/ScePafWidget.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, scePafWidgetSetFontSize) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceBgAppUtil/SceBgAppUtil.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceBgAppUtilStartBgApp) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceLibKernel/SceLibSsp.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceLibSspStackChkFail) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceProcessmgr/SceProcessmgr.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | DECL_EXPORT(int, sceKernelGetMainModuleSdkVersion); 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceSblSsMgr/SceSblAimgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, _sceKernelGetOpenPsId) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceKernelModulemgr/SceBacktrace.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, _sceKernelBacktrace) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceLibKernel/SceLibKernel.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | DECL_EXPORT(SceInt32, sceKernelGetThreadCurrentPriority); 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceLibMono/SceLibMono.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, mono_security_enable_core_clr) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceMusicExport/SceMusicExport.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceMusicExportFromFile) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceNet/SceNet.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | DECL_EXPORT(int, sceNetInetPton, int af, const char *src, void *dst); 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceSblACMgr/SceSblACMgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, _sceSblACMgrIsGameProgram) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceShutterSound/SceShutterSound.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceShutterSoundPlay) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceVideoExport/SceVideoExport.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceVideoExportFromFile) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceCoredump/SceCoredumpNounlink.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceCoredumpWriteUserData) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/script/update-linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo ============================================================ 3 | echo ====================== Vita3K Updater ====================== 4 | echo ============================================================ 5 | # cd to the correct path so the update doesn't happen outside the vita3k dir 6 | cd $(dirname $(readlink -f "$0")) 7 | 8 | boot=0 9 | if [ ! -e vita3k-latest.zip ]; then 10 | echo Checking for Vita3K updates... 11 | echo Attempting to download and extract the latest Vita3K version in progress... 12 | curl -L https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip -o ./vita3k-latest.zip 13 | else 14 | boot=1 15 | fi 16 | 17 | echo Installing update ... 18 | unzip -q -o ./vita3k-latest.zip 19 | rm -f ./vita3k-latest.zip 20 | chmod +x ./Vita3K 21 | echo Vita3K updated with success 22 | if [ $boot -eq 1 ]; then 23 | echo start Vita3K 24 | ./Vita3K 25 | else 26 | read -p "Press [Enter] key to continue..." 27 | fi 28 | -------------------------------------------------------------------------------- /vita3k/modules/SceAppUtil/SceAppUtilAddcontForce.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceAppUtilAddcontForceAddcontMount) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceGxm/SceGxmInternalForReplay.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceGxmGetReplayRenderTargetMemSize) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceTeleportServer/SceTeleportServer.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceTeleportServerSendInitialInfo) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /tools/native-tool/src/shaders.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | SHADER(clear_f) 19 | SHADER(clear_v) 20 | SHADER(color_f) 21 | SHADER(color_v) 22 | SHADER(texture_f) 23 | SHADER(texture_tint_f) 24 | SHADER(texture_v) 25 | -------------------------------------------------------------------------------- /vita3k/modules/SceKernelThreadMgr/SceThreadmgrForKernel.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, ksceKernelGetFaultingProcess) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceShellSvc/SceShellUtilLaunchApp.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceShellUtilLaunchAppRequestLaunchApp) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceGxm/SceGxmInternalForGles.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceGxmShaderPatcherCreateFragmentProgramForGles) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceNotificationUtil/SceNotificationUtilBgApp.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceNotificationUtilBgAppInitialize) { 21 | return UNIMPLEMENTED(); 22 | } 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceError/SceError.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | DECL_EXPORT(SceInt32, _sceErrorGetExternalString, char *result, uint32_t err); 24 | -------------------------------------------------------------------------------- /vita3k/util/include/util/overloaded.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | template 19 | struct overloaded : Ts... { 20 | using Ts::operator()...; 21 | }; 22 | template 23 | overloaded(Ts...) -> overloaded; 24 | -------------------------------------------------------------------------------- /vita3k/motion/include/motion/event_handler.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | void handle_motion_event(EmuEnvState &emuenv, const SDL_GamepadSensorEvent &sensor); 23 | -------------------------------------------------------------------------------- /vita3k/kernel/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(SOURCE_LIST 2 | include/kernel/state.h 3 | include/kernel/types.h 4 | include/kernel/thread/thread_data_queue.h 5 | include/kernel/thread/thread_state.h 6 | include/kernel/cpu_protocol.h 7 | include/kernel/sync_primitives.h 8 | include/kernel/relocation.h 9 | include/kernel/object_store.h 10 | include/kernel/debugger.h 11 | include/kernel/load_self.h 12 | include/kernel/callback.h 13 | src/kernel.cpp 14 | src/thread.cpp 15 | src/debugger.cpp 16 | src/load_self.cpp 17 | src/cpu_protocol.cpp 18 | src/sync_primitives.cpp 19 | src/relocation.cpp 20 | src/callback.cpp 21 | ) 22 | 23 | add_library( 24 | kernel 25 | STATIC 26 | ${SOURCE_LIST} 27 | ) 28 | 29 | target_include_directories(kernel PUBLIC include) 30 | target_link_libraries(kernel PUBLIC rtc cpu mem util nids) 31 | target_link_libraries(kernel PRIVATE patch SDL3::SDL3 miniz vita-toolchain) 32 | if(TRACY_ENABLE_ON_CORE_COMPONENTS) 33 | target_link_libraries(kernel PRIVATE tracy) 34 | endif() 35 | source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE_LIST}) -------------------------------------------------------------------------------- /vita3k/lang/include/lang/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | #include 20 | #include 21 | 22 | namespace lang { 23 | 24 | void init_lang(LangState &lang, EmuEnvState &emuenv); 25 | 26 | } // namespace lang 27 | -------------------------------------------------------------------------------- /vita3k/modules/SceKernelDmacMgr/SceDmacmgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceDmacMemcpy) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceDmacMemset) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/modules/SceNpDrm/ScePsmDrm.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, scePsmDrmGetRifInfo) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, scePsmDrmGetRifKey) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/modules/SceSysmem/SceSysmem.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | DECL_EXPORT(SceUID, sceKernelFindMemBlockByAddr, Address addr, uint32_t size); 23 | DECL_EXPORT(int, sceKernelFreeMemBlock, SceUID uid); 24 | -------------------------------------------------------------------------------- /vita3k/nids/include/nids/types.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | // Don't use unordered_set since searching is usually slower for < 100 elements 24 | using NIDSet = std::set; 25 | -------------------------------------------------------------------------------- /vita3k/shaders-builtin/opengl/render_main.frag: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #version 410 core 19 | 20 | in vec2 uv_frag; 21 | 22 | uniform sampler2D fb; 23 | 24 | out vec3 color_frag; 25 | 26 | void main() { 27 | color_frag = texture(fb, uv_frag).rgb; 28 | } 29 | -------------------------------------------------------------------------------- /vita3k/modules/SceAppUtil/SceAppUtilBook.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceAppUtilBookMount) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceAppUtilBookUmount) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/modules/SceClipboard/SceClipboard.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceClipboardGetText) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceClipboardSetText) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/modules/SceUlobjDbg/SceUlobjDbg.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, SceUlobjDbg_D7F0F610) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, SceUlobjDbg_F9C0F5DA) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/glutil/include/glutil/shader.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | namespace gl { 24 | UniqueGLObject load_shaders(const fs::path &vertex_file_path, const fs::path &fragment_file_path); 25 | } 26 | -------------------------------------------------------------------------------- /vita3k/modules/SceAppUtil/SceAppUtilExt.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceAppUtilExtVideoMount) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceAppUtilExtVideoUmount) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/modules/SceUsbServ/SceUsbServ.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceUsbServAccessoryActivate) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceUsbServAccessoryDeactivate) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/renderer/src/vulkan/allocator.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | // Build allocator implementations. 19 | #define VMA_IMPLEMENTATION 20 | #include 21 | 22 | // Provide storage for the dynamic loader 23 | VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE 24 | -------------------------------------------------------------------------------- /vita3k/module/src/read_arg.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | // Workaround for old Clang and GCC 22 | template <> 23 | module::vargs make_vargs(const LayoutArgsState &state) { 24 | return module::vargs{ state }; 25 | } 26 | -------------------------------------------------------------------------------- /vita3k/shaders-builtin/opengl/render_main.vert: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #version 410 core 19 | 20 | in vec3 position_vertex; 21 | in vec2 uv_vertex; 22 | 23 | out vec2 uv_frag; 24 | 25 | void main() { 26 | gl_Position = vec4(position_vertex, 1.0); 27 | uv_frag = uv_vertex; 28 | } 29 | -------------------------------------------------------------------------------- /vita3k/config/include/config/version.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | extern const char org_name[]; 21 | extern const char app_name[]; 22 | extern const char app_version[]; 23 | extern const int app_number; 24 | extern const char app_hash[]; 25 | extern const char window_title[]; 26 | -------------------------------------------------------------------------------- /vita3k/modules/SceCoredump/SceCoredump.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceCoredumpRegisterCoredumpHandler) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceCoredumpUnregisterCoredumpHandler) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /tools/dir_doc.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * @file tools/dir_doc.cpp 3 | * 4 | * @brief Folder structure description 5 | * 6 | * This `.cpp` file contains descriptions for the `tools` source code folder and its sub-folders. 7 | */ 8 | 9 | /** 10 | * @dir tools 11 | * 12 | * @brief Standalone tools to aid in emulator development 13 | */ 14 | 15 | /** 16 | * @dir tools/gen-modules 17 | * 18 | * @brief Batch generator for `Sce` modules source files 19 | * 20 | * This tool allows automated generation of `.cpp` files that serve as placeholders to catch unimplemented Vita 21 | * SDK calls and notify them on the terminal log while preventing the emulator from crashing or raising exceptions because of it. 22 | */ 23 | 24 | /** 25 | * @dir tools/native-tool 26 | * 27 | * @brief PS Vita software tool created to reverse engineer the GXM shader language 28 | * 29 | * Needs VitaSDK to be compiled 30 | */ 31 | 32 | /** 33 | * @dir tools/usse-decoder-gen 34 | * 35 | * @brief Instruction bitmask generator for the PS Vita GPU's Universal Scalable Shader Engine instruction set 36 | * 37 | * Needs VitaSDK to be compiled 38 | */ 39 | -------------------------------------------------------------------------------- /vita3k/modules/SceNotificationUtil/SceNotificationUtil.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceNotificationUtilCleanHistory) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceNotificationUtilSendNotification) { 25 | return UNIMPLEMENTED(); 26 | } 27 | -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/render_main.frag: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #version 450 19 | 20 | layout(location = 0) in vec2 uv_frag; 21 | layout(binding = 0) uniform sampler2D fb; 22 | 23 | layout(location = 0) out vec3 color_frag; 24 | 25 | void main() { 26 | color_frag = texture(fb, uv_frag).rgb; 27 | } 28 | -------------------------------------------------------------------------------- /vita3k/regmgr/include/regmgr/types.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | struct Keys { 24 | SceUInt32 size; // sizeof(this) 25 | Ptr name; 26 | SceUInt32 type; // request confirmation 27 | SceInt32 value; 28 | }; 29 | -------------------------------------------------------------------------------- /vita3k/gxm/src/stream.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | namespace gxm { 21 | bool is_stream_instancing(SceGxmIndexSource source) { 22 | return (source == SCE_GXM_INDEX_SOURCE_EACH_INSTANCE_16BIT) || (source == SCE_GXM_INDEX_SOURCE_EACH_INSTANCE_32BIT); 23 | } 24 | } // namespace gxm 25 | -------------------------------------------------------------------------------- /vita3k/renderer/include/renderer/profile.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #ifdef TRACY_ENABLE 21 | 22 | #include 23 | #define R_PROFILE(name) ZoneNamedNC(___tracy_scoped_zone, name, 0x0055FF, false); 24 | 25 | #else 26 | 27 | #define R_PROFILE(name) 28 | 29 | #endif // TRACY_ENABLE 30 | -------------------------------------------------------------------------------- /vita3k/cpu/include/cpu/disasm/state.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | struct cs_insn; 24 | 25 | typedef std::unique_ptr> InsnPtr; 26 | 27 | struct DisasmState { 28 | size_t csh; 29 | InsnPtr insn; 30 | }; 31 | -------------------------------------------------------------------------------- /vita3k/emuenv/include/emuenv/window.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | struct SDL_Window; 23 | namespace renderer { 24 | struct State; 25 | } 26 | 27 | typedef std::unique_ptr WindowPtr; 28 | typedef std::unique_ptr RendererPtr; 29 | -------------------------------------------------------------------------------- /vita3k/shader/include/shader/profile.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #ifdef TRACY_ENABLE 21 | 22 | #include 23 | #define SHADER_PROFILE(name) ZoneNamedNC(___tracy_scoped_zone, name, 0x000035, false); 24 | 25 | #else 26 | 27 | #define SHADER_PROFILE(name) 28 | 29 | #endif // TRACY_ENABLE 30 | -------------------------------------------------------------------------------- /vita3k/gdbstub/include/gdbstub/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | struct EmuEnvState; 21 | 22 | void server_open(EmuEnvState &state); 23 | void server_close(EmuEnvState &state); 24 | void add_breakpoint(EmuEnvState &state, uint32_t address); 25 | void remove_breakpoint(EmuEnvState &state, uint32_t address); 26 | -------------------------------------------------------------------------------- /vita3k/modules/SceStdio/SceStdio.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceKernelStderr) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceKernelStdin) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceKernelStdout) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/modules/SceSysmem/SceDipsw.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceKernelCheckDipsw) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceKernelClearDipsw) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceKernelSetDipsw) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/shaders-builtin/vulkan/render_main.vert: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #version 450 19 | 20 | layout(location = 0) in vec3 position_vertex; 21 | layout(location = 1) in vec2 uv_vertex; 22 | 23 | layout(location = 0) out vec2 uv_frag; 24 | 25 | void main() { 26 | gl_Position = vec4(position_vertex, 1.0); 27 | uv_frag = uv_vertex; 28 | } 29 | -------------------------------------------------------------------------------- /vita3k/compat/include/compat/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | namespace compat { 24 | 25 | bool load_app_compat_db(GuiState &gui, EmuEnvState &emuenv); 26 | bool update_app_compat_db(GuiState &gui, EmuEnvState &emuenv); 27 | 28 | } // namespace compat 29 | -------------------------------------------------------------------------------- /external/ddspp/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018-2023 Emilio López 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /external/CppCommon/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016-2024 Ivan Shynkarenka 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /vita3k/modules/SceAppUtil/SceAppUtilCache.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceAppUtilCacheGetDevInfo) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceAppUtilCacheMount) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceAppUtilCacheUmount) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/modules/SceSsl/SceSslInternal.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceSslInternalGetCertificateAuthority) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceSslInternalIsInitalized) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceSslInternalWrite) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/cpu/include/cpu/disasm/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | struct DisasmState; 24 | 25 | bool init(DisasmState &state); 26 | std::string disassemble(DisasmState &state, const uint8_t *code, size_t size, uint64_t address, bool thumb, uint16_t *insn_size = nullptr); 27 | bool is_returning(DisasmState &state); 28 | -------------------------------------------------------------------------------- /vita3k/regmgr/include/regmgr/state.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | struct RegMgrState { 28 | std::mutex mutex; 29 | fs::path system_dreg_path; 30 | 31 | std::map>> system_dreg; 32 | }; 33 | -------------------------------------------------------------------------------- /vita3k/util/include/util/lock_and_find.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include "find.h" 21 | 22 | #include 23 | 24 | template 25 | std::shared_ptr lock_and_find(Key key, const std::map> &map, std::mutex &mutex) { 26 | const std::lock_guard lock(mutex); 27 | return util::find(key, map); 28 | } 29 | -------------------------------------------------------------------------------- /vita3k/modules/SceSysmem/SceProcEventForDriver.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, ksceKernelInvokeProcEventHandler) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, ksceKernelRegisterProcEventHandler) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, ksceKernelUnregisterProcEventHandler) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/util/include/util/preprocessor.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #define UNWRAP(x) x 21 | 22 | #define CONCATENATE_DETAIL(x, y) x##y 23 | #define CONCATENATE(x, y) CONCATENATE_DETAIL(x, y) 24 | 25 | #define STRINGIZE_DETAIL(x) #x "" 26 | #define STRINGIZE(x) STRINGIZE_DETAIL(x) 27 | 28 | #define STR_CASE(...) \ 29 | case __VA_ARGS__: \ 30 | return #__VA_ARGS__ 31 | -------------------------------------------------------------------------------- /vita3k/patch/include/patch/patch.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | struct Patch { 25 | uint8_t seg; 26 | uint32_t offset; 27 | std::vector values; 28 | }; 29 | 30 | std::vector get_patches(fs::path &path, const std::string &titleid); 31 | Patch parse_patch(const std::string &patch); 32 | -------------------------------------------------------------------------------- /vita3k/util/include/util/safe_time.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #ifdef _WIN32 23 | #define SAFE_GMTIME(time, result) gmtime_s(result, time) 24 | #define SAFE_LOCALTIME(time, result) localtime_s(result, time) 25 | #else 26 | #define SAFE_GMTIME(time, result) gmtime_r(time, result) 27 | #define SAFE_LOCALTIME(time, result) localtime_r(time, result) 28 | #endif 29 | -------------------------------------------------------------------------------- /vita3k/modules/SceDriverUser/SceAppMgrUser.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #include "../SceAppMgr/SceAppMgr.h" 23 | 24 | SceInt32 _sceAppMgrGetAppState(SceAppMgrAppState *appState, SceUInt32 sizeofSceAppMgrAppState, SceUInt32 buildVersion); 25 | SceInt32 sceAppMgrLoadExec(const char *appPath, char *const argv[], const SceAppMgrLoadExecOptParam *optParam); 26 | -------------------------------------------------------------------------------- /vita3k/motion/include/motion/state.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #include 23 | 24 | struct MotionState { 25 | std::mutex mutex; 26 | MotionInput motion_data; 27 | uint32_t last_counter = 0; 28 | uint64_t last_gyro_timestamp = 0; 29 | uint64_t last_accel_timestamp = 0; 30 | 31 | bool is_sampling = false; 32 | }; 33 | -------------------------------------------------------------------------------- /vita3k/modules/SceNotificationUtil/SceNotificationUtilProgress.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceNotificationUtilProgressBegin) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceNotificationUtilProgressFinish) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceNotificationUtilProgressUpdate) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/modules/SceUlobjMgr/SceUlobjMgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, _sceUlobjMgrRegisterLibultProtocolRevision) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, _sceUlobjMgrStartSupportingUserlevelObject) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, _sceUlobjMgrStopSupportingUserlevelObject) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/packages/include/packages/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | /** 19 | * @file functions.h 20 | * @brief Software package (`.pkg`) and license handling functions 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | #include 27 | 28 | std::string install_pup(const fs::path &pref_path, const fs::path &pup_path, const std::function &progress_callback = nullptr); 29 | -------------------------------------------------------------------------------- /vita3k/modules/SceLocationExtension/SceLibLocationExtension.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceLocationCancelQueryLocationWifiHistory) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceLocationGetLocationWifiHistory) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceLocationQueryLocationWifiHistory) { 29 | return UNIMPLEMENTED(); 30 | } 31 | -------------------------------------------------------------------------------- /vita3k/ngs/include/ngs/state.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #include 23 | 24 | struct MemState; 25 | 26 | namespace ngs { 27 | struct VoiceDefinition; 28 | struct System; 29 | 30 | struct State { 31 | Ptr definitions; 32 | std::vector systems; 33 | }; 34 | 35 | bool init(State &ngs, MemState &mem); 36 | } // namespace ngs 37 | -------------------------------------------------------------------------------- /vita3k/util/include/util/exit_code.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | enum ExitCode { 21 | Success = 0, 22 | QuitRequested, 23 | FileNotFound, 24 | InvalidApplicationPath, 25 | 26 | InitConfigFailed, 27 | SDLInitFailed, 28 | HostInitFailed, 29 | RendererInitFailed, 30 | ModuleLoadFailed, 31 | InitThreadFailed, 32 | RunThreadFailed, 33 | KernelInitFailed 34 | }; 35 | -------------------------------------------------------------------------------- /vita3k/modules/SceGameUpdate/SceGameUpdate.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceGameUpdateAbort) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceGameUpdateInit) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceGameUpdateRun) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceGameUpdateTerm) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/ime/include/ime/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | namespace gui { 27 | 28 | void init_ime_lang(Ime &ime, const SceImeLanguage &lang); 29 | std::vector>::const_iterator get_ime_lang_index(Ime &ime, const SceImeLanguage &lang); 30 | 31 | } // namespace gui 32 | -------------------------------------------------------------------------------- /vita3k/modules/SceSysmem/SceDebugLed.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceDebugLedInvokeHandle0) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceDebugLedInvokeHandle1) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceKernelGetGPI) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceKernelSetGPO) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/config/src/version.cpp.in: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | const char org_name[] = "${VITA3K_ORG_NAME}"; 21 | const char app_name[] = "${VITA3K_APP_NAME}"; 22 | const char app_version[] = "${VITA3K_APP_VERSION}"; 23 | const int app_number = ${GIT_COUNT}; 24 | const char app_hash[] = "${GIT_HASH}"; 25 | const char window_title[] = "${VITA3K_APP_NAME} ${VITA3K_APP_VERSION} ${GIT_COUNT}-${VITA3K_GIT_REV}"; 26 | -------------------------------------------------------------------------------- /external/miniz/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013-2014 RAD Game Tools and Valve Software 2 | Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC 3 | 4 | All Rights Reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /vita3k/modules/SceSblSsMgr/SceSblDmac5Mgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceSblDmac5EncDec) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceSblDmac5EncDecKeyGen) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceSblDmac5HashTransform) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceSblDmac5HmacKeyGen) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/modules/SceSysmem/SceDipswForDriver.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, ksceKernelCheckDipsw) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, ksceKernelClearDipsw) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, ksceKernelGetDipswInfo) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, ksceKernelSetDipsw) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/modules/SceNpActivity/SceNpActivity.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceNpActivityInit) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceNpActivityPostAppStartupStatus) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceNpActivityPostStatus) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceNpActivityTerm) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/ime/include/ime/state.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | struct Ime { 24 | ImeLangState lang; 25 | bool state = false; 26 | SceImeEditText edit_text; 27 | SceImeParam param; 28 | std::string enter_label; 29 | std::u16string str; 30 | uint32_t caps_level = 0; 31 | uint32_t caretIndex = 0; 32 | uint32_t event_id = SCE_IME_EVENT_OPEN; 33 | }; 34 | -------------------------------------------------------------------------------- /vita3k/modules/SceUsbstorVStorDriver/SceUsbstorVStor.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceUsbstorVStorSetDeviceInfo) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceUsbstorVStorSetImgFilePath) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceUsbstorVStorStart) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceUsbstorVStorStop) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/performance.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #ifdef _WIN32 19 | 20 | #include 21 | 22 | extern "C" { 23 | // http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf 24 | __declspec(dllexport) uint32_t NvOptimusEnablement = 1; 25 | 26 | // https://gpuopen.com/amdpowerxpressrequesthighperformance/ 27 | __declspec(dllexport) uint32_t AmdPowerXpressRequestHighPerformance = 1; 28 | } 29 | 30 | #endif // _WIN32 31 | -------------------------------------------------------------------------------- /vita3k/modules/SceCodecEnginePerf/SceCodecEnginePerf.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceCodecEnginePmonGetProcessorLoad) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceCodecEnginePmonReset) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceCodecEnginePmonStart) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceCodecEnginePmonStop) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/modules/ScePhotoExport/ScePhotoExport.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, scePhotoExportFromData) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, scePhotoExportFromFile) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, scePhotoExportIsAvailableFromData) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, scePhotoExportIsAvailableFromFile) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/modules/SceVshBridge/SceDrmBridge.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceDrmBridgeGetCurrentSecureTick) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceDrmBridgeIsAllowRemotePlayDebug) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceDrmBridgeMlnpsnlAuth1) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceDrmBridgeMlnpsnlAuth2) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/util/include/util/find.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | namespace util { 24 | 25 | template 26 | std::shared_ptr find(Key key, const std::map> &map) { 27 | const auto it = map.find(key); 28 | if (it == map.end()) { 29 | return std::shared_ptr(); 30 | } 31 | 32 | return it->second; 33 | } 34 | 35 | } // namespace util 36 | -------------------------------------------------------------------------------- /vita3k/modules/SceDriverUser/SceDrmBridgeUser.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, _sceDrmBridgeGetCurrentSecureTick) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, _sceDrmBridgeIsAllowRemotePlayDebug) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, _sceDrmBridgeMlnpsnlAuth1) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, _sceDrmBridgeMlnpsnlAuth2) { 33 | return UNIMPLEMENTED(); 34 | } 35 | -------------------------------------------------------------------------------- /vita3k/renderer/include/renderer/gl/fence.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | namespace renderer::gl { 23 | 24 | class Fence { 25 | private: 26 | GLsync sync_; 27 | bool signaled_; 28 | 29 | public: 30 | explicit Fence(); 31 | ~Fence(); 32 | 33 | void insert(); 34 | bool wait_for_signal(); 35 | 36 | bool empty() const { 37 | return !sync_; 38 | } 39 | }; 40 | 41 | } // namespace renderer::gl 42 | -------------------------------------------------------------------------------- /vita3k/app/include/app/discord.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #if USE_DISCORD 21 | 22 | #include 23 | 24 | #include 25 | 26 | namespace discordrpc { 27 | bool init(); 28 | 29 | void shutdown(); 30 | 31 | void update_init_status(bool discord_rich_presence, bool *discord_rich_presence_old); 32 | 33 | void update_presence(const std::string &state = "", const std::string &details = "Idle", bool reset_timer = true); 34 | } // namespace discordrpc 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /vita3k/io/include/io/io.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | constexpr int SCE_ERROR_ERRNO_ENOENT = 0x80010002; // Associated file or directory does not exist 21 | constexpr int SCE_ERROR_ERRNO_EEXIST = 0x80010011; // File exists 22 | constexpr int SCE_ERROR_ERRNO_EMFILE = 0x80010018; // Too many files are open 23 | constexpr int SCE_ERROR_ERRNO_EBADFD = 0x80010051; // File descriptor is invalid for this operation 24 | constexpr int SCE_ERROR_ERRNO_EOPNOTSUPP = 0x8001005F; // Operation not supported 25 | -------------------------------------------------------------------------------- /vita3k/modules/ScePaf/ScePafMisc.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, scePafGetCurrentClockLocalTime) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, scePafSha1Init) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, scePafSha1Result) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, scePafSha1Update) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sce_paf_misc_does_file_exist) { 37 | return UNIMPLEMENTED(); 38 | } 39 | -------------------------------------------------------------------------------- /vita3k/kernel/include/kernel/load_self.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | #include 25 | 26 | struct KernelState; 27 | struct MemState; 28 | struct KernelModule; 29 | 30 | SceUID load_self(KernelState &kernel, MemState &mem, const void *self, const std::string &self_path, const fs::path &log_path, const std::vector &patches); 31 | int unload_self(KernelState &kernel, MemState &mem, KernelModule &module); 32 | -------------------------------------------------------------------------------- /vita3k/module/include/module/args_layout.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | enum class ArgLocation { 23 | gpr, 24 | stack, 25 | fp 26 | }; 27 | 28 | struct ArgLayout { 29 | ArgLocation location; 30 | std::size_t offset; 31 | }; 32 | 33 | struct LayoutArgsState { 34 | std::size_t gpr_used; 35 | std::size_t stack_used; 36 | std::size_t float_used; 37 | }; 38 | 39 | template 40 | using ArgsLayout = std::array; 41 | -------------------------------------------------------------------------------- /vita3k/modules/SceGxm/SceGxm.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | struct SceGxmInitializeParams; 23 | struct SceGxmRenderTargetParams; 24 | struct SceGxmRenderTarget; 25 | 26 | DECL_EXPORT(int, sceGxmInitialize, const SceGxmInitializeParams *params); 27 | DECL_EXPORT(int, sceGxmCreateRenderTarget, const SceGxmRenderTargetParams *params, Ptr *renderTarget); 28 | DECL_EXPORT(int, sceGxmGetRenderTargetMemSize, const SceGxmRenderTargetParams *params, uint32_t *hostMemSize); 29 | -------------------------------------------------------------------------------- /vita3k/modules/SceKernelThreadMgr/SceThreadmgrCoredumpTime.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | #include 21 | 22 | #include 23 | TRACY_MODULE_NAME(SceThreadmgrCoredumpTime); 24 | 25 | EXPORT(int, sceKernelExitThread, int status) { 26 | TRACY_FUNC(sceKernelExitThread, status); 27 | const ThreadStatePtr thread = emuenv.kernel.get_thread(thread_id); 28 | thread->exit(status); 29 | 30 | // the thread exits, the return value is not read anyway 31 | return 0; 32 | } 33 | -------------------------------------------------------------------------------- /vita3k/modules/SceShellSvc/SceShellUtil.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceShellUtilInitEvents) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceShellUtilLock) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceShellUtilRegisterEventHandler) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceShellUtilRequestLaunchApp) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceShellUtilUnlock) { 37 | return UNIMPLEMENTED(); 38 | } 39 | -------------------------------------------------------------------------------- /vita3k/modules/SceWlanBt/SceWlan.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceWlanGetConfiguration) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceWlanGetWakeOnTargetProcess) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceWlanRegisterCallback) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceWlanSetConfiguration) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceWlanUnregisterCallback) { 37 | return UNIMPLEMENTED(); 38 | } 39 | -------------------------------------------------------------------------------- /vita3k/util/include/util/bytes.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | template 24 | T byte_swap(T val); 25 | 26 | template 27 | T network_to_host_order(T val) { 28 | if constexpr (std::endian::native == std::endian::big) { 29 | return val; 30 | } else { 31 | // treat mixed endian as little endian 32 | return byte_swap(val); 33 | } 34 | } 35 | 36 | void float_to_half(const float *src, std::uint16_t *dest, const int total); 37 | -------------------------------------------------------------------------------- /vita3k/modules/SceRegistryMgr/SceRegMgrService.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceRegMgrSrvCnvRegionInt) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceRegMgrSrvCnvRegionPsCode) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceRegMgrSrvCnvRegionStr) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceRegMgrSrvGetRegion) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceRegMgrSrvGetRegionStr) { 37 | return UNIMPLEMENTED(); 38 | } 39 | -------------------------------------------------------------------------------- /vita3k/ctrl/include/ctrl/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | #include 24 | 25 | std::array get_controller_bindings_ext(EmuEnvState &emuenv); 26 | SceCtrlExternalInputMode get_type_of_controller(const int idx); 27 | int ctrl_get(const SceUID thread_id, EmuEnvState &emuenv, int port, SceCtrlData2 *pData, SceUInt32 count, bool negative, bool is_peek, bool is_v2, bool from_ext); 28 | void refresh_controllers(CtrlState &state, EmuEnvState &emuenv); 29 | -------------------------------------------------------------------------------- /vita3k/modules/SceSblPostSsMgr/SceSblUtMgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceSblUtMgrGetCurrentSecureTick) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceSblUtMgrIsTrilithiumFlagEnabled) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceSblUtMgrReadUtoken) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceSblUtMgrResetUtokenFile) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceSblUtMgrUpdateUtoken) { 37 | return UNIMPLEMENTED(); 38 | } 39 | -------------------------------------------------------------------------------- /vita3k/modules/SceSblPostSsMgr/SceSblPmMgr.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceSblPmMgrAuthEtoI) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceSblPmMgrGetCurrentMode) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceSblPmMgrGetProductModeForUser) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceSblPmMgrGetProductModeFromNVS) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceSblPmMgrSetProductModeOffForUser) { 37 | return UNIMPLEMENTED(); 38 | } 39 | -------------------------------------------------------------------------------- /vita3k/io/include/io/VitaIoDevice.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | BETTER_ENUM(VitaIoDevice, int, 23 | addcont0 = 0, 24 | app0, 25 | host0, 26 | gro0, 27 | grw0, 28 | imc0, 29 | music0, 30 | os0, 31 | pd0, 32 | photo0, 33 | sa0, 34 | savedata0, 35 | savedata1, 36 | sd0, 37 | tm0, 38 | tty0, 39 | tty1, 40 | tty2, 41 | tty3, 42 | ud0, 43 | uma0, 44 | ur0, 45 | ux0, 46 | vd0, 47 | video0, 48 | vs0, 49 | xmc0, 50 | _INVALID = -1) 51 | -------------------------------------------------------------------------------- /vita3k/modules/SceNetInternal/SceNetInternal.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | #include "../SceNet/SceNet.h" 21 | 22 | #include 23 | TRACY_MODULE_NAME(SceNetInternal); 24 | 25 | EXPORT(int, sceNetInternalInetPton, int af, const char *src, void *dst) { 26 | return CALL_EXPORT(sceNetInetPton, af, src, dst); 27 | } 28 | 29 | EXPORT(int, sceNetInternalIcmConnect, int sid, int flags) { 30 | TRACY_FUNC(sceNetInternalIcmConnect, sid, flags); 31 | // call sceNetSyscallIcmConnect(sid, flags) 32 | return UNIMPLEMENTED(); 33 | } 34 | -------------------------------------------------------------------------------- /vita3k/modules/SceUdcd/SceUdcd.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceUdcdGetDeviceInfo) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceUdcdGetDeviceState) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceUdcdGetDrvState) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceUdcdRegisterCallback) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceUdcdUnregisterCallback) { 37 | return UNIMPLEMENTED(); 38 | } 39 | 40 | EXPORT(int, sceUdcdWaitState) { 41 | return UNIMPLEMENTED(); 42 | } 43 | -------------------------------------------------------------------------------- /vita3k/cpu/include/cpu/state.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | struct CPUState { 27 | CPUState() = default; 28 | 29 | SceUID thread_id = 0; 30 | MemState *mem = nullptr; 31 | CPUProtocolBase *protocol = nullptr; 32 | DisasmState disasm; 33 | 34 | Block halt_instruction; 35 | Address halt_instruction_pc; // thumb mode pc 36 | 37 | CPUInterfacePtr cpu; 38 | bool svc_called; 39 | uint32_t svc; 40 | }; 41 | -------------------------------------------------------------------------------- /vita3k/modules/SceDTrace/SceDTrace.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceDTraceAddHelperDof) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceDTraceClientClose) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceDTraceClientIoctl) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceDTraceClientOpen) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceDTraceHelperIoctl) { 37 | return UNIMPLEMENTED(); 38 | } 39 | 40 | EXPORT(int, sceDTraceRemoveHelperDof) { 41 | return UNIMPLEMENTED(); 42 | } 43 | -------------------------------------------------------------------------------- /vita3k/util/include/util/hash.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | using Sha256Hash = std::array; 25 | 26 | Sha256Hash sha256(const void *data, size_t size); 27 | typedef std::array Sha256HashText; 28 | 29 | void hex_buf(const std::uint8_t *hash, char *dst, const std::size_t source_size); 30 | 31 | template 32 | std::string hex_string(const std::array &hash) { 33 | std::string dst(2 * N, 0); 34 | hex_buf(hash.data(), dst.data(), N); 35 | 36 | return dst; 37 | } 38 | -------------------------------------------------------------------------------- /vita3k/modules/SceShellSvc/SceShellSvc.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | #include 22 | 23 | TRACY_MODULE_NAME(SceShellSvc) 24 | 25 | EXPORT(int, sceShellSvcGetSvcObj) { 26 | TRACY_FUNC(sceShellSvcGetSvcObj); 27 | static Ptr
svc_client; 28 | if (!svc_client) { 29 | svc_client = Ptr
(alloc(emuenv.mem, sizeof(int), "ShellSvc")); 30 | *svc_client.get(emuenv.mem) = get_client_vtable(emuenv.mem).address(); 31 | } 32 | 33 | STUBBED("STUBBED"); 34 | return svc_client.address(); 35 | } 36 | -------------------------------------------------------------------------------- /vita3k/io/include/io/vfs.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | class VitaIoDevice; 24 | 25 | namespace vfs { 26 | 27 | using FileBuffer = std::vector; 28 | 29 | bool read_file(VitaIoDevice device, FileBuffer &buf, const fs::path &pref_path, const fs::path &vfs_file_path); 30 | bool read_app_file(FileBuffer &buf, const fs::path &pref_path, const std::string &app_path, const fs::path &vfs_file_path); 31 | SceSize get_directory_used_size(const VitaIoDevice device, const std::string &vfs_path, const fs::path &pref_path); 32 | } // namespace vfs 33 | -------------------------------------------------------------------------------- /vita3k/ngs/include/ngs/modules/output.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2025 Vita3K team 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; either version 2 of the License, or 6 | // (at your option) any later version. 7 | // 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU General Public License along 14 | // with this program; if not, write to the Free Software Foundation, Inc., 15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 16 | 17 | #pragma once 18 | 19 | #include 20 | 21 | namespace ngs { 22 | 23 | class OutputModule : public Module { 24 | public: 25 | bool process(KernelState &kern, const MemState &mem, const SceUID thread_id, ModuleData &data, std::unique_lock &scheduler_lock, std::unique_lock &voice_lock) override; 26 | 27 | static constexpr uint32_t get_max_parameter_size() { 28 | return 0; 29 | } 30 | uint32_t get_buffer_parameter_size() const override { 31 | return get_max_parameter_size(); 32 | } 33 | }; 34 | 35 | } // namespace ngs 36 | -------------------------------------------------------------------------------- /vita3k/modules/SceIofilemgr/SceIofilemgr.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | typedef struct _sceIoLseekOpt { 24 | SceOff offset; 25 | SceIoSeekMode whence; 26 | uint32_t unk; 27 | } _sceIoLseekOpt; 28 | 29 | DECL_EXPORT(int, _sceIoDopen, const char *dir); 30 | DECL_EXPORT(int, _sceIoDread, const SceUID fd, SceIoDirent *dir); 31 | DECL_EXPORT(int, _sceIoMkdir, const char *dir, const SceMode mode); 32 | DECL_EXPORT(SceOff, _sceIoLseek, const SceUID fd, Ptr<_sceIoLseekOpt> opt); 33 | DECL_EXPORT(int, _sceIoGetstat, const char *file, SceIoStat *stat); 34 | -------------------------------------------------------------------------------- /vita3k/modules/SceJpegArm/SceJpegArm.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceJpegArmCreateSplitDecoder) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceJpegArmDecodeMJpeg) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceJpegArmDecodeMJpegYCbCr) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceJpegArmDeleteSplitDecoder) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceJpegArmGetOutputInfo) { 37 | return UNIMPLEMENTED(); 38 | } 39 | 40 | EXPORT(int, sceJpegArmSplitDecodeMJpeg) { 41 | return UNIMPLEMENTED(); 42 | } 43 | -------------------------------------------------------------------------------- /vita3k/np/src/init.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | bool init(NpState &state, const np::CommunicationID *comm_id) { 22 | state.inited = true; 23 | 24 | if (comm_id) { 25 | state.comm_id = *comm_id; 26 | } 27 | 28 | return true; 29 | } 30 | 31 | bool deinit(NpState &state) { 32 | // Reserved 33 | state.inited = false; 34 | return true; 35 | } 36 | 37 | bool init(NpTrophyState &state) { 38 | state.inited = true; 39 | return true; 40 | } 41 | 42 | bool deinit(NpTrophyState &state) { 43 | state.inited = false; 44 | return true; 45 | } 46 | -------------------------------------------------------------------------------- /vita3k/Windows.manifest: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | true 24 | PerMonitorV2 25 | UTF-8 26 | 27 | 28 | -------------------------------------------------------------------------------- /vita3k/modules/SceIncomingDialog/SceIncomingDialog.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceIncomingDialogClose) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceIncomingDialogFinish) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceIncomingDialogGetStatus) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceIncomingDialogInitialize) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceIncomingDialogOpen) { 37 | return UNIMPLEMENTED(); 38 | } 39 | 40 | EXPORT(int, sceIncomingDialogSwitchToDialog) { 41 | return UNIMPLEMENTED(); 42 | } 43 | -------------------------------------------------------------------------------- /vita3k/modules/SceRtc/SceRtc.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | struct SceRtcTick; 23 | struct SceDateTime; 24 | 25 | DECL_EXPORT(int, _sceRtcConvertLocalTimeToUtc, const SceRtcTick *pLocalTime, SceRtcTick *pUtc); 26 | DECL_EXPORT(int, _sceRtcConvertUtcToLocalTime, const SceRtcTick *pUtc, SceRtcTick *pLocalTime); 27 | DECL_EXPORT(int, _sceRtcGetCurrentClock, SceDateTime *datePtr, int iTimeZone); 28 | DECL_EXPORT(int, _sceRtcGetCurrentClockLocalTime, SceDateTime *datePtr); 29 | DECL_EXPORT(int, _sceRtcGetCurrentNetworkTick, SceRtcTick *tick); 30 | DECL_EXPORT(int, _sceRtcGetCurrentTick, SceRtcTick *tick); 31 | -------------------------------------------------------------------------------- /external/CppCommon/include/cpu.h: -------------------------------------------------------------------------------- 1 | /*! 2 | \file cpu.h 3 | \brief CPU management definition 4 | \author Ivan Shynkarenka 5 | \date 27.07.2016 6 | \copyright MIT License 7 | */ 8 | 9 | #ifndef CPPCOMMON_SYSTEM_CPU_H 10 | #define CPPCOMMON_SYSTEM_CPU_H 11 | 12 | #include 13 | #include 14 | 15 | namespace CppCommon { 16 | 17 | //! CPU management static class 18 | /*! 19 | Provides CPU management functionality such as architecture, cores count, 20 | clock speed, Hyper-Threading feature. 21 | 22 | Thread-safe. 23 | */ 24 | class CPU { 25 | public: 26 | CPU() = delete; 27 | CPU(const CPU &) = delete; 28 | CPU(CPU &&) = delete; 29 | ~CPU() = delete; 30 | 31 | CPU &operator=(const CPU &) = delete; 32 | CPU &operator=(CPU &&) = delete; 33 | 34 | //! CPU architecture string 35 | static std::string Architecture(); 36 | //! CPU affinity count 37 | static int Affinity(); 38 | //! CPU logical cores count 39 | static int LogicalCores(); 40 | //! CPU physical cores count 41 | static int PhysicalCores(); 42 | //! CPU total cores count 43 | static std::pair TotalCores(); 44 | //! CPU clock speed in Hz 45 | static int64_t ClockSpeed(); 46 | //! Is CPU Hyper-Threading enabled? 47 | static bool HyperThreading(); 48 | }; 49 | 50 | /*! \example system_cpu.cpp CPU management example */ 51 | 52 | } // namespace CppCommon 53 | 54 | #endif // CPPCOMMON_SYSTEM_CPU_H 55 | -------------------------------------------------------------------------------- /vita3k/util/include/util/arm.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #define INSTRUCTION_UNKNOWN 0 ///< Unknown/unsupported instruction 23 | #define INSTRUCTION_MOVW 1 ///< MOVW Rd, \#imm instruction 24 | #define INSTRUCTION_MOVT 2 ///< MOVT Rd, \#imm instruction 25 | #define INSTRUCTION_SYSCALL 3 ///< SVC \#imm instruction 26 | #define INSTRUCTION_BRANCH 4 ///< BX Rn instruction 27 | #define INSTRUCTION_BLX 5 ///< BLX imm instruction 28 | 29 | uint32_t encode_arm_inst(uint8_t type, uint32_t immed, uint16_t reg); 30 | // SVC not implemented for thumb 31 | uint32_t encode_thumb_inst(uint8_t type, uint32_t immed, uint16_t reg); 32 | -------------------------------------------------------------------------------- /vita3k/nids/src/nids.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | #define VAR_NID(name, nid) extern const char name_##name[] = #name; 21 | #define NID(name, nid) extern const char name_##name[] = #name; 22 | #include 23 | #undef NID 24 | #undef VAR_NID 25 | 26 | const char *import_name(uint32_t nid) { 27 | switch (nid) { 28 | #define VAR_NID(name, nid) \ 29 | case nid: \ 30 | return name_##name; 31 | #define NID(name, nid) \ 32 | case nid: \ 33 | return name_##name; 34 | #include 35 | #undef NID 36 | #undef VAR_NID 37 | default: 38 | return "UNRECOGNISED"; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /vita3k/modules/SceGpuEs4/SceGpuEs4ForUser.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, PVRSRVOpen) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, PVRSRVRelease) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, PVRSRV_BridgeDispatchKM) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceGpuRegisterSalvage) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceGpuSignalWait) { 37 | return UNIMPLEMENTED(); 38 | } 39 | 40 | EXPORT(int, sceGpuSignalWaitLockup) { 41 | return UNIMPLEMENTED(); 42 | } 43 | 44 | EXPORT(int, sceGpuUnregisterSalvage) { 45 | return UNIMPLEMENTED(); 46 | } 47 | -------------------------------------------------------------------------------- /vita3k/modules/SceUsbSerial/SceUsbSerial.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | 20 | EXPORT(int, sceUsbSerialClose) { 21 | return UNIMPLEMENTED(); 22 | } 23 | 24 | EXPORT(int, sceUsbSerialGetRecvBufferSize) { 25 | return UNIMPLEMENTED(); 26 | } 27 | 28 | EXPORT(int, sceUsbSerialRecv) { 29 | return UNIMPLEMENTED(); 30 | } 31 | 32 | EXPORT(int, sceUsbSerialSend) { 33 | return UNIMPLEMENTED(); 34 | } 35 | 36 | EXPORT(int, sceUsbSerialSetup) { 37 | return UNIMPLEMENTED(); 38 | } 39 | 40 | EXPORT(int, sceUsbSerialStart) { 41 | return UNIMPLEMENTED(); 42 | } 43 | 44 | EXPORT(int, sceUsbSerialStatus) { 45 | return UNIMPLEMENTED(); 46 | } 47 | -------------------------------------------------------------------------------- /vita3k/shader/include/shader/gxp_parser.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | #include 25 | 26 | namespace shader { 27 | 28 | usse::GenericType translate_generic_type(const gxp::GenericParameterType &type); 29 | std::tuple get_parameter_type_store_and_name(const SceGxmParameterType &type); 30 | usse::ProgramInput get_program_input(const SceGxmProgram &program); 31 | usse::DataType get_texture_component_type(SceGxmTextureFormat format); 32 | uint8_t get_texture_component_count(SceGxmTextureFormat format); 33 | 34 | } // namespace shader 35 | -------------------------------------------------------------------------------- /vita3k/shader/src/translator/illegal.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | bool shader::usse::USSETranslatorVisitor::illegal22() { 22 | LOG_ERROR("Illegal shader opcode: 22"); 23 | return false; 24 | } 25 | 26 | bool shader::usse::USSETranslatorVisitor::illegal23() { 27 | LOG_ERROR("Illegal shader opcode: 23"); 28 | return false; 29 | } 30 | 31 | bool shader::usse::USSETranslatorVisitor::illegal24() { 32 | LOG_ERROR("Illegal shader opcode: 24"); 33 | return false; 34 | } 35 | 36 | bool shader::usse::USSETranslatorVisitor::illegal27() { 37 | LOG_ERROR("Illegal shader opcode: 27"); 38 | return false; 39 | } 40 | -------------------------------------------------------------------------------- /vita3k/util/include/util/align.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | #include 23 | 24 | template ::value>> 25 | constexpr T align(const T &value, std::uint64_t align) { 26 | return static_cast((value + (align - 1)) & ~(align - 1)); 27 | } 28 | 29 | template ::value>> 30 | constexpr T align_down(const T &value, std::uint64_t align) { 31 | return static_cast(value & ~(align - 1)); 32 | } 33 | 34 | template 35 | constexpr T next_power_of_two(T num) { 36 | return std::bit_ceil(num); 37 | } 38 | -------------------------------------------------------------------------------- /vita3k/resource.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include "gitver.h" 21 | 22 | #define IDI_ICON1 101 23 | 24 | #define STRINGIZE2(s) #s 25 | #define STRINGIZE(s) STRINGIZE2(s) 26 | 27 | #define FILE_VERSION APP_VER_HI, APP_VER_MID, APP_VER_LO, APP_NUMBER 28 | #define FILE_VERSION_STR STRINGIZE(APP_VER_HI) "." STRINGIZE(APP_VER_MID) "." STRINGIZE(APP_VER_LO) "." STRINGIZE(APP_NUMBER) 29 | 30 | // Next default values for new objects 31 | // 32 | #ifdef APSTUDIO_INVOKED 33 | #ifndef APSTUDIO_READONLY_SYMBOLS 34 | #define _APS_NEXT_RESOURCE_VALUE 102 35 | #define _APS_NEXT_COMMAND_VALUE 40001 36 | #define _APS_NEXT_CONTROL_VALUE 1000 37 | #define _APS_NEXT_SYMED_VALUE 101 38 | #endif 39 | #endif 40 | -------------------------------------------------------------------------------- /vita3k/io/include/io/file.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | #include 22 | 23 | class ReadOnlyInMemFile { 24 | std::vector buf; 25 | size_t currentPos = 0; 26 | 27 | public: 28 | ReadOnlyInMemFile(); 29 | ReadOnlyInMemFile(const char *data, size_t size); 30 | 31 | char *alloc_data(size_t bufsize); 32 | 33 | size_t tell() const { return currentPos; } 34 | size_t size() const { return buf.size(); } 35 | 36 | bool valid() const { return !buf.empty(); } 37 | operator bool() const { return valid(); } 38 | 39 | size_t read(void *ibuf, size_t size); 40 | const char *data(); 41 | bool seek(int offset, int origin); 42 | }; 43 | -------------------------------------------------------------------------------- /vita3k/ngs/src/modules/delay.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | namespace ngs { 22 | 23 | bool DelayModule::process(KernelState &kern, const MemState &mem, const SceUID thread_id, ModuleData &data, std::unique_lock &scheduler_lock, std::unique_lock &voice_lock) { 24 | if (!data.is_bypassed) { 25 | const SceNgsParamsDescriptor *desc = data.get_parameters(mem); 26 | if (desc->id == SCE_NGS_DELAY_PARAMS_STRUCT_ID) { 27 | LOG_WARN_ONCE("Game is using unimplemented delay audio module"); 28 | } 29 | } 30 | 31 | return false; 32 | } 33 | } // namespace ngs 34 | -------------------------------------------------------------------------------- /vita3k/module/include/module/bridge_types.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | struct MemState; 23 | 24 | // By default, do no special conversion. 25 | template 26 | struct BridgeTypes { 27 | typedef HostType ArmType; 28 | 29 | static HostType arm_to_host(const ArmType &t, const MemState &mem) { 30 | return t; 31 | } 32 | }; 33 | 34 | // Convert from address in ARM register/memory to host pointer. 35 | template 36 | struct BridgeTypes { 37 | typedef Ptr ArmType; 38 | 39 | static Pointee *arm_to_host(const ArmType &t, const MemState &mem) { 40 | return t.get(mem); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /vita3k/ngs/src/modules/pauser.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | namespace ngs { 22 | 23 | bool PauserModule::process(KernelState &kern, const MemState &mem, const SceUID thread_id, ModuleData &data, std::unique_lock &scheduler_lock, std::unique_lock &voice_lock) { 24 | if (!data.is_bypassed) { 25 | const SceNgsParamsDescriptor *desc = data.get_parameters(mem); 26 | if (desc->id == SCE_NGS_PAUSER_PARAMS_STRUCT_ID) { 27 | LOG_WARN_ONCE("Game is using unimplemented pauser audio module"); 28 | } 29 | } 30 | 31 | return false; 32 | } 33 | } // namespace ngs 34 | -------------------------------------------------------------------------------- /vita3k/ngs/src/modules/reverb.cpp: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #include 19 | #include 20 | 21 | namespace ngs { 22 | 23 | bool ReverbModule::process(KernelState &kern, const MemState &mem, const SceUID thread_id, ModuleData &data, std::unique_lock &scheduler_lock, std::unique_lock &voice_lock) { 24 | if (!data.is_bypassed) { 25 | const SceNgsParamsDescriptor *desc = data.get_parameters(mem); 26 | if (desc->id == SCE_NGS_REVERB_PARAMS_STRUCT_ID) { 27 | LOG_WARN_ONCE("Game is using unimplemented reverb audio module"); 28 | } 29 | } 30 | 31 | return false; 32 | } 33 | } // namespace ngs 34 | -------------------------------------------------------------------------------- /vita3k/display/include/display/functions.h: -------------------------------------------------------------------------------- 1 | // Vita3K emulator project 2 | // Copyright (C) 2025 Vita3K team 3 | // 4 | // This program is free software; you can redistribute it and/or modify 5 | // it under the terms of the GNU General Public License as published by 6 | // the Free Software Foundation; either version 2 of the License, or 7 | // (at your option) any later version. 8 | // 9 | // This program is distributed in the hope that it will be useful, 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | // GNU General Public License for more details. 13 | // 14 | // You should have received a copy of the GNU General Public License along 15 | // with this program; if not, write to the Free Software Foundation, Inc., 16 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | #pragma once 19 | 20 | #include 21 | 22 | #include 23 | 24 | struct DisplayState; 25 | struct KernelState; 26 | struct EmuEnvState; 27 | struct DisplayFrameInfo; 28 | 29 | void start_sync_thread(EmuEnvState &emuenv); 30 | void wait_vblank(DisplayState &display, KernelState &kernel, const ThreadStatePtr &wait_thread, const uint64_t target_vcount, const bool is_cb); 31 | // if the result is not nullptr, contain the predicted frame (pointer needs to be freed later) 32 | DisplayFrameInfo *predict_next_image(EmuEnvState &emuenv, Address sync_object); 33 | void update_prediction(EmuEnvState &emuenv, DisplayFrameInfo &frame); 34 | --------------------------------------------------------------------------------