├── rpcs3
├── stdafx.cpp
├── Emu
│ ├── Cell
│ │ ├── Modules
│ │ │ ├── cellSpursJq.h
│ │ │ ├── cellFontFT.h
│ │ │ ├── libsynth2.h
│ │ │ ├── libad_billboard_util.cpp
│ │ │ ├── sceNpUtil.h
│ │ │ ├── cellScreenshot.h
│ │ │ ├── cellGcmSys.h
│ │ │ ├── cellImeJp.h
│ │ │ ├── StaticHLE.h
│ │ │ ├── cellCelpEnc.h
│ │ │ ├── cellSpudll.h
│ │ │ ├── cellLibprof.cpp
│ │ │ ├── cellSysutilNpEula.cpp
│ │ │ ├── cellBgdl.h
│ │ │ ├── cellSysconf.h
│ │ │ ├── cellVideoUpload.cpp
│ │ │ ├── cellFs.h
│ │ │ ├── sys_net_.h
│ │ │ ├── cellCelp8Enc.h
│ │ │ ├── cellRtcAlarm.cpp
│ │ │ ├── cellKb.h
│ │ │ ├── cellRtc.h
│ │ │ ├── libad_async.cpp
│ │ │ ├── cellBgdl.cpp
│ │ │ ├── cellSysconf.cpp
│ │ │ ├── cellJpgEnc.h
│ │ │ ├── cellSysutilMisc.cpp
│ │ │ ├── cellScreenshot.cpp
│ │ │ ├── libsnd3.h
│ │ │ ├── cellOvis.cpp
│ │ │ ├── sceNpTus.h
│ │ │ ├── sys_libc.cpp
│ │ │ ├── libad_core.cpp
│ │ │ ├── sys_spinlock.cpp
│ │ │ ├── cellUsbd.h
│ │ │ ├── cellUserInfo.h
│ │ │ ├── cellNetAoi.cpp
│ │ │ ├── cellCrossController.cpp
│ │ │ ├── cellCelp8Enc.cpp
│ │ │ ├── cellMouse.h
│ │ │ └── cellCelpEnc.cpp
│ │ ├── RawSPUThread.h
│ │ ├── lv2
│ │ │ ├── sys_gamepad.h
│ │ │ ├── sys_time.h
│ │ │ ├── sys_dbg.h
│ │ │ ├── sys_gpio.h
│ │ │ ├── sys_ss.h
│ │ │ ├── sys_trace.h
│ │ │ ├── sys_tty.h
│ │ │ ├── sys_gpio.cpp
│ │ │ ├── sys_interrupt.h
│ │ │ ├── sys_overlay.h
│ │ │ ├── sys_trace.cpp
│ │ │ ├── sys_lwcond.h
│ │ │ ├── sys_cond.h
│ │ │ ├── sys_semaphore.h
│ │ │ ├── sys_rwlock.h
│ │ │ └── sys_timer.h
│ │ ├── SPUDisAsm.cpp
│ │ ├── Common.h
│ │ └── SPUAnalyser.cpp
│ ├── RSX
│ │ ├── VK
│ │ │ ├── VulkanAPI.cpp
│ │ │ ├── VKMemAlloc.cpp
│ │ │ ├── VKCommonDecompiler.h
│ │ │ ├── VKRenderPass.h
│ │ │ ├── VulkanAPI.h
│ │ │ ├── VKResourceManager.cpp
│ │ │ ├── VKFramebuffer.h
│ │ │ ├── VKFormats.h
│ │ │ └── VKDMA.h
│ │ ├── Common
│ │ │ ├── ShaderParam.cpp
│ │ │ └── GLSLTypes.h
│ │ ├── GL
│ │ │ ├── GLCommonDecompiler.h
│ │ │ ├── GLCommonDecompiler.cpp
│ │ │ ├── OpenGL.h
│ │ │ └── OpenGL.cpp
│ │ ├── gcm_printing.h
│ │ ├── Null
│ │ │ ├── NullGSRender.h
│ │ │ └── NullGSRender.cpp
│ │ ├── D3D12
│ │ │ ├── D3D12CommonDecompiler.h
│ │ │ ├── D3D12FragmentProgramDecompiler.h
│ │ │ └── D3D12VertexProgramDecompiler.h
│ │ ├── Capture
│ │ │ ├── rsx_capture.h
│ │ │ └── rsx_trace.h
│ │ └── GSRender.cpp
│ ├── Io
│ │ ├── Null
│ │ │ ├── NullMouseHandler.h
│ │ │ ├── NullKeyboardHandler.h
│ │ │ └── NullPadHandler.h
│ │ └── Skylander.h
│ ├── Audio
│ │ ├── Pulse
│ │ │ └── PulseBackend.h
│ │ ├── Null
│ │ │ └── NullAudioBackend.h
│ │ ├── AudioDumper.cpp
│ │ ├── ALSA
│ │ │ └── ALSABackend.h
│ │ ├── AL
│ │ │ └── OpenALBackend.h
│ │ ├── XAudio2
│ │ │ └── XAudio2Backend.h
│ │ └── AudioDumper.h
│ ├── GameInfo.h
│ ├── VFS.h
│ ├── Memory
│ │ ├── vm_locking.h
│ │ └── vm_reservation.h
│ └── CPU
│ │ └── CPUDisAsm.h
├── qt
│ └── etc
│ │ └── qt.conf
├── rpcs3.ico
├── rpcs3.png
├── rpcs3.icns
├── Icons
│ ├── grid.png
│ ├── list.png
│ ├── open.png
│ ├── play.png
│ ├── stop.png
│ ├── pause.png
│ ├── refresh.png
│ ├── restart.png
│ ├── configure.png
│ ├── insignia.png
│ ├── controller.png
│ ├── controllers.png
│ ├── fullscreen.png
│ ├── controllers_2.png
│ ├── custom_config.png
│ ├── custom_config_2.png
│ ├── exit_fullscreen.png
│ └── combo_config_bordered.png
├── rpcs3.rc
├── windows.qrc
├── rpcs3_version.h
├── restore_new.h
├── define_new_memleakdetect.h
├── rpcs3.desktop
├── rpcs3qt
│ ├── about_dialog.h
│ ├── save_data_dialog.h
│ ├── trophy_notification_frame.h
│ ├── kernel_explorer.h
│ ├── custom_dialog.h
│ ├── welcome_dialog.h
│ ├── vfs_dialog.h
│ ├── memory_string_searcher.h
│ ├── _discord_utils.h
│ ├── game_list.h
│ ├── trophy_notification_helper.h
│ ├── input_dialog.h
│ ├── save_data_info_dialog.h
│ ├── breakpoint_handler.cpp
│ ├── gl_gs_frame.h
│ ├── osk_dialog_frame.h
│ ├── game_list_grid_delegate.h
│ ├── instruction_editor_dialog.h
│ ├── find_dialog.h
│ ├── game_list_grid.h
│ ├── user_account.h
│ ├── custom_dialog.cpp
│ ├── user_account.cpp
│ ├── trophy_notification_helper.cpp
│ ├── progress_dialog.h
│ ├── register_editor_dialog.h
│ ├── _discord_utils.cpp
│ ├── breakpoint_list.h
│ ├── cg_disasm_window.h
│ ├── memory_viewer_panel.h
│ ├── welcome_dialog.cpp
│ ├── syntax_highlighter.h
│ ├── save_data_dialog.cpp
│ ├── about_dialog.cpp
│ ├── input_dialog.cpp
│ ├── save_data_list_dialog.h
│ ├── breakpoint_handler.h
│ ├── custom_table_widget_item.h
│ ├── table_item_delegate.h
│ ├── debugger_list.h
│ ├── vfs_dialog_tab.h
│ ├── auto_pause_settings_dialog.h
│ ├── user_manager_dialog.h
│ └── skylander_dialog.h
├── stdafx_d3d12.h
├── resource.h
├── rpcs3_version.cpp
├── main_application.h
├── Crypto
│ ├── ec.h
│ └── lz.h
├── basic_keyboard_handler.h
├── OpenAL.vcxproj.filters
├── basic_mouse_handler.h
├── headless_application.h
├── Loader
│ ├── PUP.h
│ ├── TRP.h
│ ├── PUP.cpp
│ ├── TAR.h
│ └── ELF.cpp
├── XAudio.vcxproj.filters
├── stb_image.cpp
├── resources.qrc
├── rpcs3.plist.in
├── stdafx.h
└── GLGSRender.vcxproj.filters
├── usertype.dat
├── .github
├── FUNDING.yml
└── ISSUE_TEMPLATE.md
├── .mention-bot
├── bin
├── OpenAL32.dll
├── Icons
│ └── ui
│ │ ├── L1.png
│ │ ├── L2.png
│ │ ├── R1.png
│ │ ├── R2.png
│ │ ├── new.png
│ │ ├── circle.png
│ │ ├── cross.png
│ │ ├── dpad.png
│ │ ├── save.png
│ │ ├── select.png
│ │ ├── square.png
│ │ ├── start.png
│ │ ├── dpad_up.png
│ │ ├── fade_top.png
│ │ ├── triangle.png
│ │ ├── dpad_down.png
│ │ ├── dpad_left.png
│ │ ├── dpad_right.png
│ │ ├── fade_bottom.png
│ │ ├── left_stick.png
│ │ └── right_stick.png
├── GuiConfigs
│ ├── YoRHa-background.jpg
│ └── Dark Orange (Hollow)-background.jpg
└── dev_hdd0
│ └── game
│ └── TEST12345
│ └── USRDIR
│ ├── rpcsp.elf
│ ├── pad_test.elf
│ ├── pspgame.elf
│ ├── dump_stack.elf
│ ├── gs_gcm_cube.elf
│ ├── ppu_thread.elf
│ ├── spurs_test.self
│ ├── gs_gcm_tetris.elf
│ ├── gs_gcm_hello_world.elf
│ ├── gs_gcm_basic_triangle.elf
│ └── gs_gcm_handle_system_cmd.elf
├── 3rdparty
├── minidx12
│ └── Lib
│ │ ├── d2d1.lib
│ │ ├── dxgi.lib
│ │ └── dwrite.lib
├── OpenAL
│ ├── libs
│ │ └── Win64
│ │ │ └── OpenAL32.lib
│ └── include
│ │ └── efx-creative.h
├── discord-rpc
│ ├── lib
│ │ ├── discord-rpc.lib
│ │ ├── libdiscord-rpc-mac.a
│ │ └── libdiscord-rpc-linux.a
│ └── include
│ │ └── discord_register.h
├── XAudio2_7
│ └── dxsdkver.h
└── hidapi.vcxproj.filters
├── .editorconfig
├── Vulkan
├── glslang-build
│ └── glslang-build.vcxproj.filters
└── CMakeLists.txt
├── Utilities
├── GSL.h
├── rXml.h
├── bin_patch.h
├── date_time.h
├── sysinfo.h
├── Interval.h
├── hash.h
├── version.cpp
├── version.h
├── sema.cpp
├── dynamic_library.cpp
├── Timer.h
└── rXml.cpp
├── .travis
├── travis.env
├── build-mac.bash
└── build-linux.bash
├── pre-commit.readme
├── rpcs3_memleak.props
├── common_default_macros.props
├── asmjitsrc
└── CMakeLists.txt
├── common_default.props
├── rpcs3_debug.props
├── rpcs3_release.props
├── llvm_build
├── llvm_build.vcxproj.filters
└── UpdateProjectFiles.bat
├── .clang-format
├── .travis.yml
└── rpcs3_llvm.props
/rpcs3/stdafx.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellSpursJq.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/VK/VulkanAPI.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
--------------------------------------------------------------------------------
/usertype.dat:
--------------------------------------------------------------------------------
1 | throw_exception
2 | rethrow_exception
3 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/RawSPUThread.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "SPUThread.h"
4 |
--------------------------------------------------------------------------------
/rpcs3/qt/etc/qt.conf:
--------------------------------------------------------------------------------
1 | [Paths]
2 | Prefix = qt/
3 | Plugins = plugins
4 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | patreon: Nekotekina
2 | custom: https://rpcs3.net/alipay
3 |
--------------------------------------------------------------------------------
/.mention-bot:
--------------------------------------------------------------------------------
1 | {
2 | "userBlacklist": ["AlexAltea", "tambry", "DHrpcs3"]
3 | }
4 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/rpcs3.ico
--------------------------------------------------------------------------------
/rpcs3/rpcs3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/rpcs3.png
--------------------------------------------------------------------------------
/bin/OpenAL32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/OpenAL32.dll
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/Common/ShaderParam.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "ShaderParam.h"
--------------------------------------------------------------------------------
/rpcs3/rpcs3.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/rpcs3.icns
--------------------------------------------------------------------------------
/bin/Icons/ui/L1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/L1.png
--------------------------------------------------------------------------------
/bin/Icons/ui/L2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/L2.png
--------------------------------------------------------------------------------
/bin/Icons/ui/R1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/R1.png
--------------------------------------------------------------------------------
/bin/Icons/ui/R2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/R2.png
--------------------------------------------------------------------------------
/bin/Icons/ui/new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/new.png
--------------------------------------------------------------------------------
/rpcs3/Icons/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/grid.png
--------------------------------------------------------------------------------
/rpcs3/Icons/list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/list.png
--------------------------------------------------------------------------------
/rpcs3/Icons/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/open.png
--------------------------------------------------------------------------------
/rpcs3/Icons/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/play.png
--------------------------------------------------------------------------------
/rpcs3/Icons/stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/stop.png
--------------------------------------------------------------------------------
/bin/Icons/ui/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/circle.png
--------------------------------------------------------------------------------
/bin/Icons/ui/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/cross.png
--------------------------------------------------------------------------------
/bin/Icons/ui/dpad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/dpad.png
--------------------------------------------------------------------------------
/bin/Icons/ui/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/save.png
--------------------------------------------------------------------------------
/bin/Icons/ui/select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/select.png
--------------------------------------------------------------------------------
/bin/Icons/ui/square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/square.png
--------------------------------------------------------------------------------
/bin/Icons/ui/start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/start.png
--------------------------------------------------------------------------------
/rpcs3/Icons/pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/pause.png
--------------------------------------------------------------------------------
/rpcs3/Icons/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/refresh.png
--------------------------------------------------------------------------------
/rpcs3/Icons/restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/restart.png
--------------------------------------------------------------------------------
/bin/Icons/ui/dpad_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/dpad_up.png
--------------------------------------------------------------------------------
/bin/Icons/ui/fade_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/fade_top.png
--------------------------------------------------------------------------------
/bin/Icons/ui/triangle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/triangle.png
--------------------------------------------------------------------------------
/rpcs3/Icons/configure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/configure.png
--------------------------------------------------------------------------------
/rpcs3/Icons/insignia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/insignia.png
--------------------------------------------------------------------------------
/rpcs3/rpcs3.rc:
--------------------------------------------------------------------------------
1 | #include "resource.h"
2 | IDI_ICON1 ICON "rpcs3.ico"
3 | frame_icon ICON "rpcs3.ico"
4 |
--------------------------------------------------------------------------------
/bin/Icons/ui/dpad_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/dpad_down.png
--------------------------------------------------------------------------------
/bin/Icons/ui/dpad_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/dpad_left.png
--------------------------------------------------------------------------------
/bin/Icons/ui/dpad_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/dpad_right.png
--------------------------------------------------------------------------------
/bin/Icons/ui/fade_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/fade_bottom.png
--------------------------------------------------------------------------------
/bin/Icons/ui/left_stick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/left_stick.png
--------------------------------------------------------------------------------
/bin/Icons/ui/right_stick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/Icons/ui/right_stick.png
--------------------------------------------------------------------------------
/rpcs3/Icons/controller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/controller.png
--------------------------------------------------------------------------------
/rpcs3/Icons/controllers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/controllers.png
--------------------------------------------------------------------------------
/rpcs3/Icons/fullscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/fullscreen.png
--------------------------------------------------------------------------------
/3rdparty/minidx12/Lib/d2d1.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/minidx12/Lib/d2d1.lib
--------------------------------------------------------------------------------
/3rdparty/minidx12/Lib/dxgi.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/minidx12/Lib/dxgi.lib
--------------------------------------------------------------------------------
/rpcs3/Icons/controllers_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/controllers_2.png
--------------------------------------------------------------------------------
/rpcs3/Icons/custom_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/custom_config.png
--------------------------------------------------------------------------------
/3rdparty/minidx12/Lib/dwrite.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/minidx12/Lib/dwrite.lib
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/VK/VKMemAlloc.cpp:
--------------------------------------------------------------------------------
1 | #define VMA_IMPLEMENTATION
2 | #include "3rdparty/GPUOpen/include/vk_mem_alloc.h"
3 |
--------------------------------------------------------------------------------
/rpcs3/Icons/custom_config_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/custom_config_2.png
--------------------------------------------------------------------------------
/rpcs3/Icons/exit_fullscreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/exit_fullscreen.png
--------------------------------------------------------------------------------
/bin/GuiConfigs/YoRHa-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/GuiConfigs/YoRHa-background.jpg
--------------------------------------------------------------------------------
/rpcs3/Icons/combo_config_bordered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/rpcs3/Icons/combo_config_bordered.png
--------------------------------------------------------------------------------
/3rdparty/OpenAL/libs/Win64/OpenAL32.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/OpenAL/libs/Win64/OpenAL32.lib
--------------------------------------------------------------------------------
/3rdparty/discord-rpc/lib/discord-rpc.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/discord-rpc/lib/discord-rpc.lib
--------------------------------------------------------------------------------
/rpcs3/windows.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | qt/etc/qt.conf
4 |
5 |
6 |
--------------------------------------------------------------------------------
/3rdparty/discord-rpc/lib/libdiscord-rpc-mac.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/discord-rpc/lib/libdiscord-rpc-mac.a
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/rpcsp.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/rpcsp.elf
--------------------------------------------------------------------------------
/3rdparty/discord-rpc/lib/libdiscord-rpc-linux.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/3rdparty/discord-rpc/lib/libdiscord-rpc-linux.a
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/pad_test.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/pad_test.elf
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/pspgame.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/pspgame.elf
--------------------------------------------------------------------------------
/bin/GuiConfigs/Dark Orange (Hollow)-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/GuiConfigs/Dark Orange (Hollow)-background.jpg
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/dump_stack.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/dump_stack.elf
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_cube.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_cube.elf
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/ppu_thread.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/ppu_thread.elf
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/spurs_test.self:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/spurs_test.self
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.{h,cpp,hpp}]
4 | charset = utf-8-bom
5 | indent_style = tab
6 | indent_size = 4
7 | trim_trailing_whitespace = true
8 |
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_tetris.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_tetris.elf
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_hello_world.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_hello_world.elf
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/GL/GLCommonDecompiler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace gl
4 | {
5 | int get_varying_register_location(std::string_view varying_register_name);
6 | }
7 |
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_basic_triangle.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_basic_triangle.elf
--------------------------------------------------------------------------------
/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_handle_system_cmd.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Zangetsu38/rpcs3/HEAD/bin/dev_hdd0/game/TEST12345/USRDIR/gs_gcm_handle_system_cmd.elf
--------------------------------------------------------------------------------
/Vulkan/glslang-build/glslang-build.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/3rdparty/OpenAL/include/efx-creative.h:
--------------------------------------------------------------------------------
1 | /* The tokens that would be defined here are already defined in efx.h. This
2 | * empty file is here to provide compatibility with Windows-based projects
3 | * that would include it. */
4 |
--------------------------------------------------------------------------------
/Utilities/GSL.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define GSL_THROW_ON_CONTRACT_VIOLATION
4 |
5 | #pragma push_macro("new")
6 | #undef new
7 | #include
8 | #pragma pop_macro("new")
9 | #undef Expects
10 | #undef Ensures
11 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_gamepad.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Cell/ErrorCodes.h"
4 | #include "Emu/Memory/vm_ptr.h"
5 |
6 | //Syscalls
7 |
8 | u32 sys_gamepad_ycon_if(uint8_t packet_id, vm::ptr in, vm::ptr out);
9 |
--------------------------------------------------------------------------------
/.travis/travis.env:
--------------------------------------------------------------------------------
1 | # Variables set by Travis CI
2 | TRAVIS_PULL_REQUEST
3 | TRAVIS_BRANCH
4 | TRAVIS_COMMIT
5 | # Variables for Travis build matrix
6 | COMPILER
7 | DEPLOY_APPIMAGE
8 | # Private Travis CI variables
9 | GITHUB_TOKEN
10 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3_version.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 |
6 | namespace rpcs3
7 | {
8 | std::string get_branch();
9 |
10 | extern const utils::version version;
11 | }
12 |
--------------------------------------------------------------------------------
/rpcs3/restore_new.h:
--------------------------------------------------------------------------------
1 | //Restore the new operator if previously saved before overriding
2 | //Allow the use of placement new
3 | #if defined(MSVC_CRT_MEMLEAK_DETECTION) && defined(_DEBUG) && defined(DBG_NEW)
4 | #pragma pop_macro("new")
5 | #endif
6 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/gcm_printing.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 |
6 | namespace rsx
7 | {
8 | std::string get_method_name(u32 id);
9 |
10 | std::function get_pretty_printing_function(u32 id);
11 | }
12 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_time.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | // SysCalls
6 | s32 sys_time_get_timezone(vm::ptr timezone, vm::ptr summertime);
7 | s32 sys_time_get_current_time(vm::ptr sec, vm::ptr nsec);
8 | u64 sys_time_get_timebase_frequency();
9 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/SPUDisAsm.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "SPUDisAsm.h"
3 |
4 | const spu_decoder s_spu_disasm;
5 |
6 | u32 SPUDisAsm::disasm(u32 pc)
7 | {
8 | const u32 op = *(be_t*)(offset + pc);
9 | (this->*(s_spu_disasm.decode(op)))({ op });
10 | return 4;
11 | }
12 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_dbg.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | // Syscalls
6 |
7 | error_code sys_dbg_read_process_memory(s32 pid, u32 address, u32 size, vm::ptr data);
8 | error_code sys_dbg_write_process_memory(s32 pid, u32 address, u32 size, vm::cptr data);
9 |
--------------------------------------------------------------------------------
/rpcs3/define_new_memleakdetect.h:
--------------------------------------------------------------------------------
1 | //Override the new operator to use the memory leak detection from visual studio
2 | //Does not work with placement new
3 | #if defined(MSVC_CRT_MEMLEAK_DETECTION) && defined(_DEBUG) && defined(DBG_NEW)
4 | #pragma push_macro("new")
5 | #define new DBG_NEW
6 | #endif
7 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/Null/NullGSRender.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Emu/RSX/GSRender.h"
3 |
4 | class NullGSRender : public GSRender
5 | {
6 | public:
7 | u64 get_cycles() final;
8 | NullGSRender();
9 |
10 | private:
11 | bool do_method(u32 cmd, u32 value) final;
12 | void end() override;
13 | };
14 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellFontFT.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "cellFont.h"
4 |
5 | #include "Emu/Memory/vm_ptr.h"
6 |
7 | struct CellFontLibraryConfigFT
8 | {
9 | vm::bptr library;
10 | CellFontMemoryInterface MemoryIF;
11 | };
12 |
13 | using CellFontRendererConfigFT = CellFontRendererConfig;
14 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Type=Application
3 | Name=RPCS3
4 | GenericName=PlayStation 3 Emulator
5 | Comment=An open-source PlayStation 3 emulator/debugger written in C++.
6 | Icon=rpcs3
7 | TryExec=rpcs3
8 | Exec=rpcs3 %f
9 | Terminal=false
10 | Categories=Game;Emulator;
11 | Keywords=PS3;Playstation;
12 |
--------------------------------------------------------------------------------
/pre-commit.readme:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # git pre-commit hook that run git-clang-format when committing.
4 | # To use it install clang-format and python 2.7 then copy this
5 | # file to .git/hooks/ and remove the extension
6 |
7 | git clang-format --style=file --diff > style.patch
8 | git apply --index style.patch
9 | rm style.patch
10 | exit 0
11 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_gpio.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | enum : u64
6 | {
7 | SYS_GPIO_UNKNOWN_DEVICE_ID,
8 | SYS_GPIO_LED_DEVICE_ID,
9 | SYS_GPIO_DIP_SWITCH_DEVICE_ID,
10 | };
11 |
12 | error_code sys_gpio_get(u64 device_id, vm::ptr value);
13 | error_code sys_gpio_set(u64 device_id, u64 mask, u64 value);
14 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Io/Null/NullMouseHandler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Io/MouseHandler.h"
4 |
5 | class NullMouseHandler final : public MouseHandlerBase
6 | {
7 | public:
8 | void Init(const u32 max_connect) override
9 | {
10 | memset(&m_info, 0, sizeof(MouseInfo));
11 | m_info.max_connect = max_connect;
12 | m_mice.clear();
13 | }
14 | };
15 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/about_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ui
6 | {
7 | class about_dialog;
8 | }
9 |
10 | class about_dialog : public QDialog
11 | {
12 | Q_OBJECT
13 |
14 | public:
15 | explicit about_dialog(QWidget* parent = nullptr);
16 | ~about_dialog();
17 |
18 | private:
19 | Ui::about_dialog *ui;
20 | };
21 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/save_data_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Memory/vm.h"
5 | #include "Emu/Cell/Modules/cellSaveData.h"
6 |
7 | class save_data_dialog : public SaveDialogBase
8 | {
9 | public:
10 | virtual s32 ShowSaveDataList(std::vector& save_entries, s32 focused, u32 op, vm::ptr listSet) override;
11 | };
12 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/trophy_notification_frame.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Memory/vm.h"
5 | #include "Emu/Cell/Modules/sceNpTrophy.h"
6 |
7 | #include
8 |
9 | class trophy_notification_frame : public QWidget
10 | {
11 | public:
12 | trophy_notification_frame(const std::vector& imgBuffer, const SceNpTrophyDetails& trophy, int height);
13 | };
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/kernel_explorer.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | class kernel_explorer : public QDialog
10 | {
11 | Q_OBJECT
12 |
13 | QTreeWidget* m_tree;
14 |
15 | public:
16 | kernel_explorer(QWidget* parent);
17 | private Q_SLOTS:
18 | void Update();
19 | };
20 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Common.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Utilities/types.h"
4 |
5 | // Floating-point rounding mode (for both PPU and SPU)
6 | enum FPSCR_RN
7 | {
8 | FPSCR_RN_NEAR = 0,
9 | FPSCR_RN_ZERO = 1,
10 | FPSCR_RN_PINF = 2,
11 | FPSCR_RN_MINF = 3,
12 | };
13 |
14 | // Get the exponent of a float
15 | inline int fexpf(float x)
16 | {
17 | return (std::bit_cast(x) >> 23) & 0xff;
18 | }
19 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_ss.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 | #include "Emu/Cell/ErrorCodes.h"
5 |
6 | struct CellSsOpenPSID
7 | {
8 | be_t high;
9 | be_t low;
10 | };
11 |
12 | error_code sys_ss_random_number_generator(u32 arg1, vm::ptr buf, u64 size);
13 | s32 sys_ss_get_console_id(vm::ptr buf);
14 | s32 sys_ss_get_open_psid(vm::ptr ptr);
15 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/SPUAnalyser.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "SPUAnalyser.h"
3 |
4 | template <>
5 | void fmt_class_string::format(std::string& out, u64 arg)
6 | {
7 | // Decode instruction name from the enum value
8 | for (u32 i = 0; i < 10; i++)
9 | {
10 | if (u64 value = (arg >> (54 - i * 6)) & 0x3f)
11 | {
12 | out += static_cast(value + 0x20);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/rpcs3/stdafx_d3d12.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifdef _MSC_VER
4 |
5 | // Must be included first
6 | #include
7 |
8 | #include
9 | #include "Emu/RSX/D3D12/D3D12Utils.h"
10 | #include "Emu/RSX/D3D12/D3D12Formats.h"
11 | #include "Emu/RSX/D3D12/D3D12GSRender.h"
12 |
13 | #pragma comment(lib, "d2d1")
14 | #pragma comment(lib, "DXGI")
15 | #pragma comment(lib, "Dwrite")
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_trace.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Utilities/types.h"
4 |
5 | // SysCalls
6 | s32 sys_trace_create();
7 | s32 sys_trace_start();
8 | s32 sys_trace_stop();
9 | s32 sys_trace_update_top_index();
10 | s32 sys_trace_destroy();
11 | s32 sys_trace_drain();
12 | s32 sys_trace_attach_process();
13 | s32 sys_trace_allocate_buffer();
14 | s32 sys_trace_free_buffer();
15 | s32 sys_trace_create2();
16 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/custom_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 |
6 | class custom_dialog : public QDialog
7 | {
8 | Q_OBJECT
9 |
10 | public:
11 | explicit custom_dialog(bool disableCancel, QWidget* parent = nullptr);
12 | bool m_disable_cancel;
13 |
14 | private:
15 | void keyPressEvent(QKeyEvent* event) override;
16 | void closeEvent(QCloseEvent* event) override;
17 | };
18 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/welcome_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 |
7 | namespace Ui
8 | {
9 | class welcome_dialog;
10 | }
11 |
12 | class welcome_dialog : public QDialog
13 | {
14 | Q_OBJECT
15 |
16 | public:
17 | explicit welcome_dialog(QWidget* parent = nullptr);
18 | ~welcome_dialog();
19 |
20 | private:
21 | Ui::welcome_dialog *ui;
22 | };
23 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/VK/VKCommonDecompiler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "../Common/GLSLTypes.h"
3 |
4 | namespace vk
5 | {
6 | using namespace ::glsl;
7 |
8 | int get_varying_register_location(std::string_view varying_register_name);
9 | bool compile_glsl_to_spv(std::string& shader, program_domain domain, std::vector &spv);
10 |
11 | void initialize_compiler_context();
12 | void finalize_compiler_context();
13 | }
14 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../Common/ShaderParam.h"
4 | #include "../Common/GLSLCommon.h"
5 |
6 | std::string getFloatTypeNameImp(size_t elementCount);
7 | std::string getFunctionImp(FUNCTION f);
8 | std::string compareFunctionImp(COMPARE f, const std::string &Op0, const std::string &Op1);
9 |
10 | void insert_d3d12_legacy_function(std::ostream&, bool is_fragment_program);
11 |
--------------------------------------------------------------------------------
/rpcs3/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | #define IDI_ICON1 101
3 |
4 | // Next default values for new objects
5 | //
6 | #ifdef APSTUDIO_INVOKED
7 | #ifndef APSTUDIO_READONLY_SYMBOLS
8 | #define _APS_NEXT_RESOURCE_VALUE 102
9 | #define _APS_NEXT_COMMAND_VALUE 40001
10 | #define _APS_NEXT_CONTROL_VALUE 1000
11 | #define _APS_NEXT_SYMED_VALUE 101
12 | #endif
13 | #endif
14 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3_version.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "rpcs3_version.h"
3 | #include "git-version.h"
4 |
5 | namespace rpcs3
6 | {
7 | std::string get_branch()
8 | {
9 | return RPCS3_GIT_BRANCH;
10 | }
11 |
12 | //TODO: Make this accessible from cmake and keep in sync with MACOSX_BUNDLE_BUNDLE_VERSION.
13 | const extern utils::version version{ 0, 0, 7, utils::version_type::alpha, 1, RPCS3_GIT_VERSION };
14 | }
15 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/VK/VKRenderPass.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "VKHelpers.h"
4 |
5 | namespace vk
6 | {
7 | u64 get_renderpass_key(const std::vector& images);
8 | u64 get_renderpass_key(const std::vector& images, u64 previous_key);
9 | u64 get_renderpass_key(VkFormat surface_format);
10 | VkRenderPass get_renderpass(VkDevice dev, u64 renderpass_key);
11 |
12 | void clear_renderpass_cache(VkDevice dev);
13 | }
14 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Io/Null/NullKeyboardHandler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Io/KeyboardHandler.h"
4 |
5 | class NullKeyboardHandler final : public KeyboardHandlerBase
6 | {
7 | public:
8 | void Init(const u32 max_connect) override
9 | {
10 | memset(&m_info, 0, sizeof(KbInfo));
11 | m_info.max_connect = max_connect;
12 | m_keyboards.clear();
13 | for(u32 i=0; i
13 | #include
14 | #include "define_new_memleakdetect.h"
15 | #include "Utilities/types.h"
16 |
17 | namespace vk
18 | {
19 | void init();
20 | }
21 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/vfs_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "vfs_dialog_tab.h"
4 |
5 | #include
6 | #include
7 |
8 | class vfs_dialog : public QDialog
9 | {
10 | Q_OBJECT
11 |
12 | public:
13 | explicit vfs_dialog(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget* parent = nullptr);
14 | private:
15 | std::shared_ptr m_gui_settings;
16 | std::shared_ptr m_emu_settings;
17 | };
18 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/memory_string_searcher.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Memory/vm.h"
5 | #include "Emu/System.h"
6 |
7 | #include
8 | #include
9 | #include
10 | #include
11 |
12 | class memory_string_searcher : public QDialog
13 | {
14 | Q_OBJECT
15 |
16 | QLineEdit* m_addr_line;
17 |
18 | public:
19 | memory_string_searcher(QWidget* parent);
20 |
21 | private Q_SLOTS:
22 | void OnSearch();
23 | };
24 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/libsynth2.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Utilities/BEType.h"
4 |
5 | // Error Codes
6 | enum
7 | {
8 | CELL_SOUND_SYNTH2_ERROR_FATAL = 0x80310201,
9 | CELL_SOUND_SYNTH2_ERROR_INVALID_PARAMETER = 0x80310202,
10 | CELL_SOUND_SYNTH2_ERROR_ALREADY_INITIALIZED = 0x80310203,
11 | };
12 |
13 | struct CellSoundSynth2EffectAttr
14 | {
15 | be_t core;
16 | be_t mode;
17 | be_t depth_L;
18 | be_t depth_R;
19 | be_t delay;
20 | be_t feedback;
21 | };
22 |
--------------------------------------------------------------------------------
/rpcs3_memleak.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | MSVC_CRT_MEMLEAK_DETECTION;%(PreprocessorDefinitions)
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/Capture/rsx_capture.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "rsx_replay.h"
3 |
4 | namespace rsx
5 | {
6 | class thread;
7 | namespace capture
8 | {
9 | void capture_draw_memory(thread* rsx);
10 | void capture_image_in(thread* rsx, frame_capture_data::replay_command& replay_command);
11 | void capture_buffer_notify(thread* rsx, frame_capture_data::replay_command& replay_command);
12 | void capture_display_tile_state(thread* rsx, frame_capture_data::replay_command& replay_command);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/Null/NullGSRender.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "NullGSRender.h"
3 | #include "Emu/System.h"
4 |
5 | u64 NullGSRender::get_cycles()
6 | {
7 | return thread_ctrl::get_cycles(static_cast&>(*this));
8 | }
9 |
10 | NullGSRender::NullGSRender() : GSRender()
11 | {
12 | }
13 |
14 | bool NullGSRender::do_method(u32 cmd, u32 value)
15 | {
16 | return false;
17 | }
18 |
19 | void NullGSRender::end()
20 | {
21 | rsx::method_registers.current_draw_clause.end();
22 | }
23 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/_discord_utils.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 |
5 | namespace discord
6 | {
7 | // Convenience function for initialization
8 | void initialize(const std::string& application_id = "424004941485572097");
9 |
10 | // Convenience function for shutdown
11 | void shutdown();
12 |
13 | // Convenience function for status updates. The default is set to idle.
14 | void update_presence(const std::string& state = "", const std::string& details = "Idle", bool reset_timer = true);
15 | }
16 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/libad_billboard_util.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "Emu/System.h"
3 | #include "Emu/Cell/PPUModule.h"
4 |
5 | LOG_CHANNEL(libad_billboard_util);
6 |
7 | s32 libad_billboard_util_47BC7BED() //Pain
8 | {
9 | libad_billboard_util.todo("libad_billboard_util_47BC7BED");
10 | return CELL_OK;
11 | }
12 |
13 |
14 | DECLARE(ppu_module_manager::libad_billboard_util)("libad_billboard_util", []()
15 | {
16 | REG_FNID(libad_billboard_util, 0x47BC7BED, libad_billboard_util_47BC7BED);
17 | });
18 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/sceNpUtil.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | enum
6 | {
7 | SCE_NP_UTIL_BANDWIDTH_TEST_STATUS_NONE = 0,
8 | SCE_NP_UTIL_BANDWIDTH_TEST_STATUS_RUNNING = 1,
9 | SCE_NP_UTIL_BANDWIDTH_TEST_STATUS_FINISHED = 2
10 | };
11 |
12 | struct SceNpUtilBandwidthTestResult
13 | {
14 | be_t upload_bps;
15 | be_t download_bps;
16 | be_t result;
17 | };
18 |
19 | // fxm objects
20 |
21 | struct sce_np_util_manager
22 | {
23 | std::atomic is_initialized = false;
24 | };
25 |
--------------------------------------------------------------------------------
/rpcs3/main_application.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include
5 | #include "Emu/System.h"
6 |
7 | class main_application
8 | {
9 | public:
10 | virtual void Init() = 0;
11 |
12 | static bool InitializeEmulator(const std::string& user, bool force_init);
13 |
14 | protected:
15 | virtual QThread* get_thread() = 0;
16 |
17 | EmuCallbacks CreateCallbacks();
18 |
19 | QWindow* m_game_window = nullptr; // (Currently) only needed so that pad handlers have a valid target for event filtering.
20 | };
21 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/game_list.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 |
6 | /*
7 | class used in order to get deselection
8 | if you know a simpler way, tell @Megamouse
9 | */
10 | class game_list : public QTableWidget
11 | {
12 | private:
13 | void mousePressEvent(QMouseEvent *event) override
14 | {
15 | if (!indexAt(event->pos()).isValid() || itemAt(event->pos())->data(Qt::UserRole) < 0)
16 | {
17 | clearSelection();
18 | }
19 | QTableWidget::mousePressEvent(event);
20 | }
21 | };
22 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/trophy_notification_helper.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Memory/vm.h"
5 | #include "Emu/Cell/Modules/sceNpTrophy.h"
6 |
7 | #include
8 |
9 | class trophy_notification_helper : public TrophyNotificationBase
10 | {
11 | public:
12 | trophy_notification_helper(QWindow* game_window) : m_game_window(game_window) { }
13 | s32 ShowTrophyNotification(const SceNpTrophyDetails& trophy, const std::vector& trophy_icon_buffer) override;
14 | private:
15 | QWindow* m_game_window;
16 | };
17 |
--------------------------------------------------------------------------------
/common_default_macros.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | $(DefaultPlatformToolset)
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellScreenshot.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | // Return Codes
6 | enum
7 | {
8 | CELL_SCREENSHOT_ERROR_INTERNAL = 0x8002d101,
9 | CELL_SCREENSHOT_ERROR_PARAM = 0x8002d102,
10 | CELL_SCREENSHOT_ERROR_DECODE = 0x8002d103,
11 | CELL_SCREENSHOT_ERROR_NOSPACE = 0x8002d104,
12 | CELL_SCREENSHOT_ERROR_UNSUPPORTED_COLOR_FORMAT = 0x8002d105,
13 | };
14 |
15 | struct CellScreenShotSetParam
16 | {
17 | vm::bcptr photo_title;
18 | vm::bcptr game_title;
19 | vm::bcptr game_comment;
20 | };
21 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/input_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | class input_dialog : public QDialog
9 | {
10 | Q_OBJECT
11 |
12 | public:
13 | input_dialog(int max_length, const QString& text, const QString& title, const QString& label, const QString& placeholder, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
14 | ~input_dialog();
15 |
16 | private:
17 | QString m_text;
18 |
19 | Q_SIGNALS:
20 | void text_changed(const QString& text);
21 | };
22 |
--------------------------------------------------------------------------------
/3rdparty/XAudio2_7/dxsdkver.h:
--------------------------------------------------------------------------------
1 | /*==========================================================================;
2 | *
3 | *
4 | * File: dxsdkver.h
5 | * Content: DirectX SDK Version Include File
6 | *
7 | ****************************************************************************/
8 |
9 | #ifndef _DXSDKVER_H_
10 | #define _DXSDKVER_H_
11 |
12 | #define _DXSDK_PRODUCT_MAJOR 9
13 | #define _DXSDK_PRODUCT_MINOR 29
14 | #define _DXSDK_BUILD_MAJOR 1962
15 | #define _DXSDK_BUILD_MINOR 0
16 |
17 | #endif // _DXSDKVER_H_
18 |
19 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/save_data_info_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // I just want the struct for the save data.
4 | #include "stdafx.h"
5 | #include "Emu/Memory/vm.h"
6 | #include "Emu/Cell/Modules/cellSaveData.h"
7 |
8 | #include
9 | #include
10 |
11 | //Used to display the information of a savedata.
12 | class save_data_info_dialog :public QDialog
13 | {
14 | Q_OBJECT
15 |
16 | public:
17 | explicit save_data_info_dialog(const SaveDataEntry& save, QWidget* parent = nullptr);
18 | private:
19 | void UpdateData();
20 |
21 | SaveDataEntry m_entry;
22 | QTableWidget* m_list;
23 | };
24 |
--------------------------------------------------------------------------------
/Vulkan/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "Skip installation" FORCE)
2 | set(ENABLE_SPVREMAPPER OFF CACHE BOOL "Enables building of SPVRemapper" FORCE)
3 | set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "Builds glslangValidator and spirv-remap" FORCE)
4 | set(ENABLE_OPT OFF CACHE BOOL "Enables spirv-opt capability if present" FORCE)
5 | set(ENABLE_HLSL OFF CACHE BOOL "Enables HLSL input support" FORCE)
6 | set(ENABLE_AMD_EXTENSIONS ON CACHE BOOL "Enables support of AMD-specific extensions" FORCE)
7 | set(ENABLE_NV_EXTENSIONS ON CACHE BOOL "Enables support of Nvidia-specific extensions" FORCE)
8 | add_subdirectory(glslang)
9 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/VK/VKResourceManager.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "VKResourceManager.h"
3 |
4 | namespace vk
5 | {
6 | resource_manager g_resource_manager;
7 | atomic_t g_event_ctr;
8 |
9 | resource_manager* get_resource_manager()
10 | {
11 | return &g_resource_manager;
12 | }
13 |
14 | u64 get_event_id()
15 | {
16 | return g_event_ctr++;
17 | }
18 |
19 | u64 current_event_id()
20 | {
21 | return g_event_ctr.load();
22 | }
23 |
24 | void on_event_completed(u64 event_id)
25 | {
26 | // TODO: Offload this to a secondary thread
27 | g_resource_manager.eid_completed(event_id);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/rpcs3/Crypto/ec.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Copyright (C) 2014 Hykem
4 | // Licensed under the terms of the GNU GPL, version 3
5 | // http://www.gnu.org/licenses/gpl-3.0.txt
6 |
7 | #include
8 | #include
9 |
10 | int ecdsa_set_curve(unsigned char *p, unsigned char *a, unsigned char *b, unsigned char *N, unsigned char *Gx, unsigned char *Gy);
11 | void ecdsa_set_pub(unsigned char *Q);
12 | void ecdsa_set_priv(unsigned char *k);
13 | int ecdsa_verify(unsigned char *hash, unsigned char *R, unsigned char *S);
14 | void ecdsa_sign(unsigned char *hash, unsigned char *R, unsigned char *S);
15 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/VK/VKFramebuffer.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "VKHelpers.h"
4 |
5 | namespace vk
6 | {
7 | struct framebuffer_holder : public vk::framebuffer, public rsx::ref_counted
8 | {
9 | using framebuffer::framebuffer;
10 | };
11 |
12 | vk::framebuffer_holder* get_framebuffer(VkDevice dev, u16 width, u16 height, VkRenderPass renderpass, const std::vector& image_list);
13 | vk::framebuffer_holder* get_framebuffer(VkDevice dev, u16 width, u16 height, VkRenderPass renderpass, VkFormat format, VkImage attachment);
14 |
15 | void remove_unused_framebuffers();
16 | void clear_framebuffer_cache();
17 | }
18 |
--------------------------------------------------------------------------------
/asmjitsrc/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(ASMJIT_EMBED TRUE)
2 | set(ASMJIT_STATIC TRUE)
3 | set(ASMJIT_BUILD_X86 TRUE)
4 | set(ASMJIT_BUILD_ARM FALSE)
5 | set(ASMJIT_BUILD_TEST FALSE)
6 | set(ASMJIT_DIR "${CMAKE_SOURCE_DIR}/asmjit" CACHE PATH "Location of 'asmjit'")
7 |
8 | include("${ASMJIT_DIR}/CMakeLists.txt")
9 |
10 | add_library(asmjit ${ASMJIT_SRC})
11 | target_include_directories(asmjit PUBLIC ${ASMJIT_DIR}/src)
12 | target_link_libraries(asmjit PRIVATE ${ASMJIT_DEPS})
13 |
14 | # ASMJIT should have a option for disabling installing and this wouldnt
15 | # be required to avoid installing ASMJIT...
16 |
17 | add_library(3rdparty::asmjit ALIAS asmjit)
18 |
--------------------------------------------------------------------------------
/common_default.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 10.0
8 |
9 |
10 |
11 | stdcpp17
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellGcmSys.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/RSX/GCM.h"
4 | #include "Emu/Memory/vm_ptr.h"
5 |
6 | enum
7 | {
8 | CELL_GCM_ERROR_FAILURE = 0x802100ff,
9 | CELL_GCM_ERROR_NO_IO_PAGE_TABLE = 0x80210001,
10 | CELL_GCM_ERROR_INVALID_ENUM = 0x80210002,
11 | CELL_GCM_ERROR_INVALID_VALUE = 0x80210003,
12 | CELL_GCM_ERROR_INVALID_ALIGNMENT = 0x80210004,
13 | CELL_GCM_ERROR_ADDRESS_OVERWRAP = 0x80210005,
14 | };
15 |
16 | struct CellGcmOffsetTable
17 | {
18 | vm::bptr ioAddress;
19 | vm::bptr eaAddress;
20 | };
21 |
22 | void InitOffsetTable();
23 |
24 | // Auxiliary functions
25 | s32 gcmMapEaIoAddress(u32 ea, u32 io, u32 size, bool is_strict);
26 |
--------------------------------------------------------------------------------
/Utilities/rXml.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | struct rXmlNode
6 | {
7 | rXmlNode();
8 | rXmlNode(const pugi::xml_node &);
9 | std::shared_ptr GetChildren();
10 | std::shared_ptr GetNext();
11 | std::string GetName();
12 | std::string GetAttribute( const std::string &name);
13 | std::string GetNodeContent();
14 |
15 | pugi::xml_node handle;
16 | };
17 |
18 | struct rXmlDocument
19 | {
20 | rXmlDocument();
21 | rXmlDocument(const rXmlDocument& other) = delete;
22 | rXmlDocument &operator=(const rXmlDocument& other) = delete;
23 | void Read(const std::string& data);
24 | std::shared_ptr GetRoot();
25 |
26 | pugi::xml_document handle;
27 | };
28 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Audio/Pulse/PulseBackend.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifdef HAVE_PULSE
4 | #include
5 | #include "Emu/Audio/AudioBackend.h"
6 |
7 | class PulseBackend : public AudioBackend
8 | {
9 | public:
10 | PulseBackend();
11 | virtual ~PulseBackend() override;
12 |
13 | virtual const char* GetName() const override { return "Pulse"; }
14 |
15 | static const u32 capabilities = 0;
16 | virtual u32 GetCapabilities() const override { return capabilities; }
17 |
18 | virtual void Open(u32) override;
19 | virtual void Close() override;
20 |
21 | virtual bool AddData(const void* src, u32 num_samples) override;
22 |
23 | private:
24 | pa_simple *connection = nullptr;
25 | };
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Io/Null/NullPadHandler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Io/PadHandler.h"
4 |
5 | class NullPadHandler final : public PadHandlerBase
6 | {
7 | public:
8 | bool Init() override
9 | {
10 | return true;
11 | }
12 |
13 | void init_config(pad_config* /*cfg*/, const std::string& /*name*/) override
14 | {
15 | }
16 |
17 | std::vector ListDevices() override
18 | {
19 | std::vector nulllist;
20 | nulllist.push_back("Default Null Device");
21 | return nulllist;
22 | }
23 |
24 | bool bindPadToDevice(std::shared_ptr /*pad*/, const std::string& /*device*/) override
25 | {
26 | return true;
27 | }
28 |
29 | void ThreadProc() override
30 | {
31 | }
32 | };
33 |
--------------------------------------------------------------------------------
/rpcs3/basic_keyboard_handler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Io/KeyboardHandler.h"
5 |
6 | #include
7 | #include
8 |
9 | class basic_keyboard_handler final : public QObject, public KeyboardHandlerBase
10 | {
11 | Q_OBJECT
12 | public:
13 | virtual void Init(const u32 max_connect) override;
14 |
15 | explicit basic_keyboard_handler();
16 |
17 | void SetTargetWindow(QWindow* target);
18 | bool eventFilter(QObject* obj, QEvent* ev) override;
19 | void keyPressEvent(QKeyEvent* event);
20 | void keyReleaseEvent(QKeyEvent* event);
21 | s32 getUnmodifiedKey(QKeyEvent* event);
22 | void LoadSettings();
23 | private:
24 | QWindow* m_target = nullptr;
25 | };
26 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellImeJp.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | typedef vm::ptr CellImeJpHandle;
6 |
7 | //Input state of the ImeJp
8 | enum {
9 | CELL_IMEJP_BEFORE_INPUT = 0,
10 | CELL_IMEJP_BEFORE_CONVERT = 1,
11 | CELL_IMEJP_CONVERTING = 2,
12 | CELL_IMEJP_CANDIDATE_EMPTY = 3,
13 | CELL_IMEJP_POSTCONVERT_KANA = 4,
14 | CELL_IMEJP_POSTCONVERT_HALF = 5,
15 | CELL_IMEJP_POSTCONVERT_RAW = 6,
16 | CELL_IMEJP_CANDIDATES = 7,
17 | CELL_IMEJP_MOVE_CLAUSE_GAP = 8,
18 | };
19 |
20 | //cellImeJpEnterChar, returning values pointed in pOutputStatus.
21 | enum {
22 | CELL_IMEJP_RET_NONE = 0,
23 | CELL_IMEJP_RET_THROUGH = 1,
24 | CELL_IMEJP_RET_CONFIRMED = 2,
25 | };
26 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Audio/Null/NullAudioBackend.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Audio/AudioBackend.h"
4 |
5 | class NullAudioBackend : public AudioBackend
6 | {
7 | public:
8 | NullAudioBackend() {}
9 | virtual ~NullAudioBackend() {}
10 |
11 | virtual const char* GetName() const override { return "Null"; }
12 |
13 | static const u32 capabilities = PLAY_PAUSE_FLUSH;
14 | virtual u32 GetCapabilities() const override { return capabilities; }
15 |
16 | virtual void Open(u32) override {}
17 | virtual void Close() override {}
18 |
19 | virtual void Play() override {}
20 | virtual void Pause() override {}
21 |
22 | virtual bool AddData(const void*, u32) override { return true; }
23 | virtual void Flush() override {}
24 | };
25 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Audio/AudioDumper.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "AudioDumper.h"
3 |
4 |
5 | AudioDumper::AudioDumper(u16 ch)
6 | : m_header(ch)
7 | {
8 | if (GetCh())
9 | {
10 | m_output.open(fs::get_cache_dir() + "audio.wav", fs::rewrite);
11 | m_output.write(m_header); // write initial file header
12 | }
13 | }
14 |
15 | AudioDumper::~AudioDumper()
16 | {
17 | if (GetCh())
18 | {
19 | m_output.seek(0);
20 | m_output.write(m_header); // rewrite file header
21 | }
22 | }
23 |
24 | void AudioDumper::WriteData(const void* buffer, u32 size)
25 | {
26 | if (GetCh())
27 | {
28 | verify(HERE), size, m_output.write(buffer, size) == size;
29 | m_header.Size += size;
30 | m_header.RIFF.Size += size;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/breakpoint_handler.cpp:
--------------------------------------------------------------------------------
1 | #include "breakpoint_handler.h"
2 |
3 | extern void ppu_breakpoint(u32 loc, bool isAdding);
4 |
5 | breakpoint_handler::breakpoint_handler() :m_breakpoints()
6 | {
7 |
8 | }
9 |
10 | breakpoint_handler::~breakpoint_handler()
11 | {
12 |
13 | }
14 |
15 | bool breakpoint_handler::HasBreakpoint(u32 loc) const
16 | {
17 | return m_breakpoints.find(loc) != m_breakpoints.end();
18 | }
19 |
20 | bool breakpoint_handler::AddBreakpoint(u32 loc)
21 | {
22 | m_breakpoints.insert(loc);
23 | ppu_breakpoint(loc, true);
24 | return true;
25 | }
26 |
27 | bool breakpoint_handler::RemoveBreakpoint(u32 loc)
28 | {
29 | m_breakpoints.erase(loc);
30 | ppu_breakpoint(loc, false);
31 | return true;
32 | }
33 |
--------------------------------------------------------------------------------
/rpcs3_debug.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | true
7 |
8 |
9 |
10 |
11 | _SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
12 | Disabled
13 | MultiThreadedDebugDLL
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rpcs3/OpenAL.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 |
10 |
11 | Source Files
12 |
13 |
14 |
15 |
16 | Source Files
17 |
18 |
19 |
--------------------------------------------------------------------------------
/rpcs3/basic_mouse_handler.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Io/MouseHandler.h"
5 |
6 | #include
7 | #include
8 | #include
9 |
10 | class basic_mouse_handler final : public QObject, public MouseHandlerBase
11 | {
12 | Q_OBJECT
13 | public:
14 | virtual void Init(const u32 max_connect) override;
15 |
16 | basic_mouse_handler();
17 |
18 | void SetTargetWindow(QWindow* target);
19 | void MouseButtonDown(QMouseEvent* event);
20 | void MouseButtonUp(QMouseEvent* event);
21 | void MouseScroll(QWheelEvent* event);
22 | void MouseMove(QMouseEvent* event);
23 |
24 | bool eventFilter(QObject* obj, QEvent* ev) override;
25 | private:
26 | QWindow* m_target = nullptr;
27 | };
28 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/StaticHLE.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../../Utilities/types.h"
4 | #include "Emu/Cell/PPUModule.h"
5 | #include "Emu/Cell/PPUOpcodes.h"
6 | #include
7 |
8 | struct shle_pattern
9 | {
10 | u16 start_pattern[32];
11 | u8 crc16_length;
12 | u16 crc16;
13 | u16 total_length;
14 | std::string module;
15 | std::string name;
16 |
17 | u32 fnid;
18 | };
19 |
20 | class statichle_handler
21 | {
22 | public:
23 | statichle_handler();
24 | ~statichle_handler();
25 |
26 | bool load_patterns();
27 | bool check_against_patterns(vm::cptr& data, u32 size, u32 addr);
28 |
29 | protected:
30 | uint16_t gen_CRC16(const uint8_t* data_p, size_t length);
31 |
32 | std::vector hle_patterns;
33 | };
34 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/gl_gs_frame.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "gs_frame.h"
5 |
6 | struct GLContext
7 | {
8 | QSurface *surface = nullptr;
9 | QOpenGLContext *handle = nullptr;
10 | bool owner = false;
11 | };
12 |
13 | class gl_gs_frame : public gs_frame
14 | {
15 | private:
16 | QSurfaceFormat m_format;
17 | GLContext *m_primary_context = nullptr;
18 |
19 | public:
20 | gl_gs_frame(const QRect& geometry, const QIcon& appIcon, const std::shared_ptr& gui_settings);
21 |
22 | draw_context_t make_context() override;
23 | void set_current(draw_context_t context) override;
24 | void delete_context(draw_context_t context) override;
25 | void flip(draw_context_t context, bool skip_frame=false) override;
26 | };
27 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/osk_dialog_frame.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/Memory/vm.h"
5 | #include "Emu/Cell/Modules/cellOskDialog.h"
6 | #include "Emu/System.h"
7 | #include "Emu/Cell/lv2/sys_time.h"
8 |
9 | #include "custom_dialog.h"
10 |
11 | class osk_dialog_frame : public QObject, public OskDialogBase
12 | {
13 | Q_OBJECT
14 |
15 | public:
16 | osk_dialog_frame();
17 | ~osk_dialog_frame();
18 | virtual void Create(const std::string& title, const std::u16string& message, char16_t* init_text, u32 charlimit, u32 options) override;
19 | virtual void Close(bool accepted) override;
20 |
21 | private:
22 | void SetOskText(const QString& text);
23 |
24 | custom_dialog* m_dialog = nullptr;
25 | QString m_text_old;
26 | };
27 |
--------------------------------------------------------------------------------
/3rdparty/discord-rpc/include/discord_register.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #if defined(DISCORD_DYNAMIC_LIB)
4 | # if defined(_WIN32)
5 | # if defined(DISCORD_BUILDING_SDK)
6 | # define DISCORD_EXPORT __declspec(dllexport)
7 | # else
8 | # define DISCORD_EXPORT __declspec(dllimport)
9 | # endif
10 | # else
11 | # define DISCORD_EXPORT __attribute__((visibility("default")))
12 | # endif
13 | #else
14 | # define DISCORD_EXPORT
15 | #endif
16 |
17 | #ifdef __cplusplus
18 | extern "C" {
19 | #endif
20 |
21 | DISCORD_EXPORT void Discord_Register(const char* applicationId, const char* command);
22 | DISCORD_EXPORT void Discord_RegisterSteamGame(const char* applicationId, const char* steamId);
23 |
24 | #ifdef __cplusplus
25 | }
26 | #endif
27 |
--------------------------------------------------------------------------------
/Utilities/bin_patch.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "BEType.h"
4 | #include
5 | #include
6 | #include
7 |
8 | enum class patch_type
9 | {
10 | load,
11 | byte,
12 | le16,
13 | le32,
14 | le64,
15 | lef32,
16 | lef64,
17 | be16,
18 | be32,
19 | be64,
20 | bef32,
21 | bef64,
22 | };
23 |
24 | class patch_engine
25 | {
26 | struct patch
27 | {
28 | patch_type type;
29 | u32 offset;
30 | u64 value;
31 | };
32 |
33 | // Database
34 | std::unordered_map> m_map;
35 |
36 | public:
37 | // Load from file
38 | void append(const std::string& path);
39 |
40 | // Apply patch (returns the number of entries applied)
41 | std::size_t apply(const std::string& name, u8* dst) const;
42 | };
43 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/Common/GLSLTypes.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace glsl
4 | {
5 | enum program_domain
6 | {
7 | glsl_vertex_program = 0,
8 | glsl_fragment_program = 1,
9 | glsl_compute_program = 2
10 | };
11 |
12 | enum glsl_rules
13 | {
14 | glsl_rules_opengl4,
15 | glsl_rules_spirv
16 | };
17 |
18 | struct shader_properties
19 | {
20 | glsl::program_domain domain;
21 | // Applicable in vertex stage
22 | bool require_lit_emulation;
23 |
24 | // Only relevant for fragment programs
25 | bool fp32_outputs;
26 | bool require_wpos;
27 | bool require_depth_conversion;
28 | bool require_texture_ops;
29 | bool require_shadow_ops;
30 | bool emulate_coverage_tests;
31 | bool emulate_shadow_compare;
32 | bool low_precision_tests;
33 | };
34 | };
35 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/Capture/rsx_trace.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 | #include "Utilities/types.h"
6 | #include "Emu/RSX/rsx_methods.h"
7 |
8 | namespace rsx
9 | {
10 | struct frame_trace_data
11 | {
12 | struct draw_state
13 | {
14 | std::string name;
15 | std::pair programs;
16 | rsx::rsx_state state;
17 | std::array, 4> color_buffer;
18 | std::array, 2> depth_stencil;
19 | std::vector index;
20 | u32 vertex_count;
21 |
22 | };
23 |
24 | std::vector> command_queue;
25 | std::vector draw_calls;
26 |
27 | void reset()
28 | {
29 | command_queue.clear();
30 | draw_calls.clear();
31 | }
32 | };
33 | }
34 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellCelpEnc.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 |
5 | // libCelpEnc = 0x80614001 - 0x806140ff
6 |
7 | // Return Codes
8 | enum
9 | {
10 | CELL_CELPENC_ERROR_FAILED = 0x80614001,
11 | CELL_CELPENC_ERROR_SEQ = 0x80614002,
12 | CELL_CELPENC_ERROR_ARG = 0x80614003,
13 | CELL_CELPENC_ERROR_CORE_FAILED = 0x80614081,
14 | CELL_CELPENC_ERROR_CORE_SEQ = 0x80614082,
15 | CELL_CELPENC_ERROR_CORE_ARG = 0x80614083,
16 | };
17 |
18 | // Definitions
19 | enum
20 | {
21 | CELL_CELPENC_FS_16kHz = 2,
22 |
23 | CELL_CELPENC_EXCITATION_MODE_RPE = 1,
24 |
25 | CELL_CELPENC_RPE_CONFIG_0,
26 | CELL_CELPENC_RPE_CONFIG_1,
27 | CELL_CELPENC_RPE_CONFIG_2,
28 | CELL_CELPENC_RPE_CONFIG_3,
29 |
30 | CELL_CELPENC_WORD_SZ_INI16_LE,
31 | CELL_CELPENC_WORD_SZ_FLOAT,
32 | };
33 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Audio/ALSA/ALSABackend.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #ifdef HAVE_ALSA
4 |
5 | #include "Emu/Audio/AudioBackend.h"
6 |
7 | #include
8 |
9 | class ALSABackend : public AudioBackend
10 | {
11 | snd_pcm_t* tls_handle{nullptr};
12 | snd_pcm_hw_params_t* tls_hw_params{nullptr};
13 | snd_pcm_sw_params_t* tls_sw_params{nullptr};
14 |
15 | public:
16 | ALSABackend();
17 | virtual ~ALSABackend() override;
18 |
19 | virtual const char* GetName() const override { return "ALSA"; }
20 |
21 | static const u32 capabilities = 0;
22 | virtual u32 GetCapabilities() const override { return capabilities; }
23 |
24 | virtual void Open(u32) override;
25 | virtual void Close() override;
26 |
27 | virtual bool AddData(const void* src, u32 num_samples) override;
28 | };
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/rpcs3_release.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Full
9 | true
10 | true
11 | Speed
12 | MultiThreadedDLL
13 |
14 |
15 | true
16 | true
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/rpcs3/Crypto/lz.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // Copyright (C) 2014 Hykem
4 | // Licensed under the terms of the GNU GPL, version 3
5 | // http://www.gnu.org/licenses/gpl-3.0.txt
6 |
7 | // Reverse-engineered custom Lempel–Ziv–Markov based compression.
8 |
9 | #include
10 |
11 | void decode_range(unsigned int *range, unsigned int *code, unsigned char **src);
12 | int decode_bit(unsigned int *range, unsigned int *code, int *index, unsigned char **src, unsigned char *c);
13 | int decode_number(unsigned char *ptr, int index, int *bit_flag, unsigned int *range, unsigned int *code, unsigned char **src);
14 | int decode_word(unsigned char *ptr, int index, int *bit_flag, unsigned int *range, unsigned int *code, unsigned char **src);
15 | int decompress(unsigned char *out, unsigned char *in, unsigned int size);
16 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellSpudll.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | enum CellSpudllError : u32
6 | {
7 | CELL_SPUDLL_ERROR_INVAL = 0x80410602,
8 | CELL_SPUDLL_ERROR_STAT = 0x8041060f,
9 | CELL_SPUDLL_ERROR_ALIGN = 0x80410610,
10 | CELL_SPUDLL_ERROR_NULL_POINTER = 0x80410611,
11 | CELL_SPUDLL_ERROR_SRCH = 0x80410605,
12 | CELL_SPUDLL_ERROR_UNDEF = 0x80410612,
13 | CELL_SPUDLL_ERROR_FATAL = 0x80410613,
14 | };
15 |
16 | struct CellSpudllHandleConfig
17 | {
18 | be_t mode;
19 | be_t dmaTag;
20 | be_t numMaxReferred;
21 | be_t numMaxDepend;
22 | vm::bptr unresolvedSymbolValueForFunc;
23 | vm::bptr unresolvedSymbolValueForObject;
24 | vm::bptr unresolvedSymbolValueForOther;
25 | be_t __reserved__[9];
26 | };
27 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/game_list_grid_delegate.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 |
6 | class game_list_grid_delegate : public QStyledItemDelegate
7 | {
8 | public:
9 | game_list_grid_delegate(const QSize& imageSize, const qreal& margin_factor, const qreal& margin_ratio, QObject *parent = 0);
10 |
11 | virtual void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const override;
12 | void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const override;
13 | QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const override;
14 | void setItemSize(const QSize& size);
15 | virtual ~game_list_grid_delegate();
16 | private:
17 | QSize m_size;
18 | qreal m_margin_factor;
19 | qreal m_text_factor;
20 | };
21 |
--------------------------------------------------------------------------------
/rpcs3/Emu/GameInfo.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Utilities/types.h"
4 |
5 | struct GameInfo
6 | {
7 | std::string path;
8 |
9 | std::string icon_path;
10 | std::string name;
11 | std::string serial;
12 | std::string app_ver;
13 | std::string version;
14 | std::string category;
15 | std::string fw;
16 |
17 | u32 attr = 0;
18 | u32 bootable = 0;
19 | u32 parental_lvl = 0;
20 | u32 sound_format = 0;
21 | u32 resolution = 0;
22 |
23 | GameInfo()
24 | {
25 | Reset();
26 | }
27 |
28 | void Reset()
29 | {
30 | path.clear();
31 |
32 | name = "Unknown";
33 | serial = "Unknown";
34 | app_ver = "Unknown";
35 | version = "Unknown";
36 | category = "Unknown";
37 | fw = "Unknown";
38 |
39 | attr = 0;
40 | bootable = 0;
41 | parental_lvl = 0;
42 | sound_format = 0;
43 | resolution = 0;
44 | }
45 | };
46 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/instruction_editor_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/System.h"
5 | #include "Emu/Memory/vm.h"
6 | #include "Emu/CPU/CPUThread.h"
7 | #include "Emu/CPU/CPUDisAsm.h"
8 | #include "Emu/Cell/PPUThread.h"
9 | #include "Emu/Cell/SPUThread.h"
10 |
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 |
18 | class instruction_editor_dialog : public QDialog
19 | {
20 | u32 m_pc;
21 | u32 m_cpu_offset;
22 | CPUDisAsm* m_disasm;
23 | QLineEdit* m_instr;
24 | QLabel* m_preview;
25 |
26 | public:
27 | std::weak_ptr cpu;
28 |
29 | public:
30 | instruction_editor_dialog(QWidget *parent, u32 _pc, const std::shared_ptr& _cpu, CPUDisAsm* _disasm);
31 |
32 | void updatePreview();
33 | };
34 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellLibprof.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "Emu/Cell/PPUModule.h"
3 |
4 | LOG_CHANNEL(cellLibprof);
5 |
6 | s32 cellUserTraceInit()
7 | {
8 | UNIMPLEMENTED_FUNC(cellLibprof);
9 | return CELL_OK;
10 | }
11 |
12 | s32 cellUserTraceRegister()
13 | {
14 | UNIMPLEMENTED_FUNC(cellLibprof);
15 | return CELL_OK;
16 | }
17 |
18 | s32 cellUserTraceUnregister()
19 | {
20 | UNIMPLEMENTED_FUNC(cellLibprof);
21 | return CELL_OK;
22 | }
23 |
24 | s32 cellUserTraceTerminate()
25 | {
26 | UNIMPLEMENTED_FUNC(cellLibprof);
27 | return CELL_OK;
28 | }
29 |
30 | DECLARE(ppu_module_manager::cellLibprof)("cellLibprof", []()
31 | {
32 | REG_FUNC(cellLibprof, cellUserTraceInit);
33 | REG_FUNC(cellLibprof, cellUserTraceRegister);
34 | REG_FUNC(cellLibprof, cellUserTraceUnregister);
35 | REG_FUNC(cellLibprof, cellUserTraceTerminate);
36 | });
37 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/find_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | class find_dialog : public QDialog
10 | {
11 | public:
12 | find_dialog(QTextEdit* edit, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
13 | ~find_dialog();
14 |
15 | private:
16 | int m_count_lines = 0;
17 | int m_count_total = 0;
18 | QLabel* m_label_count_lines;
19 | QLabel* m_label_count_total;
20 | QTextEdit* m_text_edit;
21 | QLineEdit* m_find_bar;
22 | QPushButton* m_find_first;
23 | QPushButton* m_find_last;
24 | QPushButton* m_find_next;
25 | QPushButton* m_find_previous;
26 |
27 | private Q_SLOTS:
28 | int count_all();
29 | void find_first();
30 | void find_last();
31 | void find_next();
32 | void find_previous();
33 | void show_count();
34 | };
35 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellSysutilNpEula.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "Emu/Cell/PPUModule.h"
3 |
4 | LOG_CHANNEL(cellSysutilNpEula);
5 |
6 | s32 cellSysutilNpEula_59D1629A() // Resistance 3, Uncharted 2
7 | {
8 | cellSysutilNpEula.todo("cellSysutilNpEula_59D1629A");
9 | return CELL_OK;
10 | }
11 |
12 | s32 sceNpEulaAbort()
13 | {
14 | UNIMPLEMENTED_FUNC(cellSysutilNpEula);
15 | return CELL_OK;
16 | }
17 |
18 | s32 cellSysutilNpEula_6599500D() // Resistance 3, Uncharted 2
19 | {
20 | cellSysutilNpEula.todo("cellSysutilNpEula_6599500D");
21 | return CELL_OK;
22 | }
23 |
24 | DECLARE(ppu_module_manager::cellSysutilNpEula)("cellSysutilNpEula", []()
25 | {
26 | REG_FNID(cellSysutilNpEula, 0x59D1629A, cellSysutilNpEula_59D1629A);
27 | REG_FUNC(cellSysutilNpEula, sceNpEulaAbort);
28 | REG_FNID(cellSysutilNpEula, 0x6599500D, cellSysutilNpEula_6599500D);
29 | });
30 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellBgdl.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | // Return Codes
6 | enum
7 | {
8 | CELL_BGDL_UTIL_ERROR_BUSY = 0x8002ce01,
9 | CELL_BGDL_UTIL_ERROR_INTERNAL = 0x8002ce02,
10 | CELL_BGDL_UTIL_ERROR_PARAM = 0x8002ce03,
11 | CELL_BGDL_UTIL_ERROR_ACCESS_ERROR = 0x8002ce04,
12 | CELL_BGDL_UTIL_ERROR_INITIALIZE = 0x8002ce05,
13 | };
14 |
15 | enum CellBGDLState : s32
16 | {
17 | CELL_BGDL_STATE_ERROR = 0,
18 | CELL_BGDL_STATE_PAUSE,
19 | CELL_BGDL_STATE_READY,
20 | CELL_BGDL_STATE_RUN,
21 | CELL_BGDL_STATE_COMPLETE,
22 | };
23 |
24 | enum CellBGDLMode : s32
25 | {
26 | CELL_BGDL_MODE_AUTO = 0,
27 | CELL_BGDL_MODE_ALWAYS_ALLOW,
28 | };
29 |
30 | struct CellBGDLInfo
31 | {
32 | be_t received_size;
33 | be_t content_size;
34 | be_t state; // CellBGDLState
35 | vm::bptr reserved;
36 | };
37 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Io/Skylander.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Io/usb_device.h"
4 | #include
5 | #include
6 |
7 | struct sky_portal
8 | {
9 | std::mutex sky_mutex;
10 | fs::file sky_file;
11 | bool sky_reload = false;
12 | u8 sky_dump[0x40 * 0x10] = {};
13 |
14 | void sky_save();
15 | void sky_load();
16 | };
17 |
18 | extern sky_portal g_skylander;
19 |
20 | class usb_device_skylander : public usb_device_emulated
21 | {
22 | public:
23 | usb_device_skylander();
24 | ~usb_device_skylander();
25 |
26 | void control_transfer(u8 bmRequestType, u8 bRequest, u16 wValue, u16 wIndex, u16 wLength, u32 buf_size, u8* buf, UsbTransfer* transfer) override;
27 | void interrupt_transfer(u32 buf_size, u8* buf, u32 endpoint, UsbTransfer* transfer) override;
28 |
29 | protected:
30 | u8 interrupt_counter = 0;
31 | std::queue> q_queries;
32 | };
33 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/game_list_grid.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "game_list.h"
4 | #include "game_list_grid_delegate.h"
5 |
6 | #include
7 | #include
8 |
9 | class game_list_grid : public game_list
10 | {
11 | Q_OBJECT
12 |
13 | QSize m_icon_size;
14 | QColor m_icon_color;
15 | qreal m_margin_factor;
16 | qreal m_text_factor;
17 | bool m_text_enabled = true;
18 |
19 | public:
20 | explicit game_list_grid(const QSize& icon_size, const QColor& icon_color, const qreal& margin_factor, const qreal& text_factor, const bool& showText);
21 | ~game_list_grid();
22 |
23 | void enableText(const bool& enabled);
24 | void setIconSize(const QSize& size);
25 | void addItem(const QPixmap& img, const QString& name, const int& row, const int& col);
26 |
27 | qreal getMarginFactor();
28 |
29 | private:
30 | game_list_grid_delegate* grid_item_delegate;
31 | };
32 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/user_account.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/System.h"
4 | #include "Utilities/File.h"
5 | #include "Utilities/StrFmt.h"
6 |
7 | // Do not confuse this with the "user" in Emu/System.h.
8 | // That user is read from config.yml, and it only represents the currently "logged in" user.
9 | // The UserAccount class will represent all users in the home directory for the User Manager dialog.
10 | // Selecting a user account in this dialog and saving writes it to config.yml.
11 | class UserAccount
12 | {
13 | public:
14 | explicit UserAccount(const std::string& user_id = "00000001");
15 |
16 | std::string GetUserId() { return m_user_id; }
17 | std::string GetUserDir() { return m_user_dir; }
18 | std::string GetUsername() { return m_username; }
19 | ~UserAccount();
20 |
21 | private:
22 | std::string m_user_id;
23 | std::string m_user_dir;
24 | std::string m_username;
25 | };
26 |
--------------------------------------------------------------------------------
/llvm_build/llvm_build.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellSysconf.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 |
5 | typedef void(CellSysconfCallback)(s32 result, vm::ptr userdata);
6 |
7 | struct CellSysconfBtDeviceInfo
8 | {
9 | be_t deviceId;
10 | be_t deviceType; // CellSysconfBtDeviceType
11 | be_t state; // CellSysconfBtDeviceState
12 | char name[64];
13 | be_t reserved[4];
14 | };
15 |
16 | struct CellSysconfBtDeviceList
17 | {
18 | CellSysconfBtDeviceInfo device[16];
19 | };
20 |
21 | enum CellSysconfBtDeviceType : s32
22 | {
23 | CELL_SYSCONF_BT_DEVICE_TYPE_AUDIO = 0x00000001,
24 | CELL_SYSCONF_BT_DEVICE_TYPE_HID = 0x00000002,
25 | };
26 |
27 | enum CellSysconfBtDeviceState : s32
28 | {
29 | CELL_SYSCONF_BT_DEVICE_STATE_UNAVAILABLE = 0,
30 | CELL_SYSCONF_BT_DEVICE_STATE_AVAILABLE = 1,
31 | };
32 |
33 | enum
34 | {
35 | CELL_SYSCONF_ERROR_PARAM = 0x8002bb01
36 | };
37 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/lv2/sys_tty.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Memory/vm_ptr.h"
4 | #include "Emu/Cell/ErrorCodes.h"
5 |
6 | // TTY channels
7 | enum
8 | {
9 | SYS_TTYP_PPU_STDIN = 0,
10 | SYS_TTYP_PPU_STDOUT = 0,
11 | SYS_TTYP_PPU_STDERR = 1,
12 | SYS_TTYP_SPU_STDOUT = 2,
13 | SYS_TTYP_USER1 = 3,
14 | SYS_TTYP_USER2 = 4,
15 | SYS_TTYP_USER3 = 5,
16 | SYS_TTYP_USER4 = 6,
17 | SYS_TTYP_USER5 = 7,
18 | SYS_TTYP_USER6 = 8,
19 | SYS_TTYP_USER7 = 9,
20 | SYS_TTYP_USER8 = 10,
21 | SYS_TTYP_USER9 = 11,
22 | SYS_TTYP_USER10 = 12,
23 | SYS_TTYP_USER11 = 13,
24 | SYS_TTYP_USER12 = 14,
25 | SYS_TTYP_USER13 = 15,
26 | };
27 |
28 | // SysCalls
29 | error_code sys_tty_read(s32 ch, vm::ptr buf, u32 len, vm::ptr preadlen);
30 | error_code sys_tty_write(s32 ch, vm::cptr buf, u32 len, vm::ptr pwritelen);
31 |
--------------------------------------------------------------------------------
/rpcs3/headless_application.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 |
5 | #include
6 |
7 | #include "main_application.h"
8 |
9 | /** Headless RPCS3 Application Class
10 | * The main point of this class is to do application initialization and initialize callbacks.
11 | */
12 |
13 | class headless_application : public QCoreApplication, public main_application
14 | {
15 | Q_OBJECT
16 | public:
17 | headless_application(int& argc, char** argv);
18 |
19 | /** Call this method before calling app.exec */
20 | void Init() override;
21 |
22 | private:
23 | void InitializeCallbacks();
24 | void InitializeConnects();
25 |
26 | QThread* get_thread() override
27 | {
28 | return thread();
29 | };
30 |
31 | Q_SIGNALS:
32 | void RequestCallAfter(const std::function& func);
33 |
34 | private Q_SLOTS:
35 | void HandleCallAfter(const std::function& func);
36 | };
37 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/custom_dialog.cpp:
--------------------------------------------------------------------------------
1 | #include "custom_dialog.h"
2 |
3 | custom_dialog::custom_dialog(bool disableCancel, QWidget* parent)
4 | : QDialog(parent), m_disable_cancel(disableCancel)
5 | {
6 | if (m_disable_cancel)
7 | {
8 | setWindowFlags(windowFlags() & ~Qt::WindowCloseButtonHint);
9 | }
10 | }
11 |
12 | void custom_dialog::keyPressEvent(QKeyEvent* event)
13 | {
14 | // this won't work with Alt+F4, the window still closes
15 | if (m_disable_cancel && event->key() == Qt::Key_Escape)
16 | {
17 | event->ignore();
18 | }
19 | else
20 | {
21 | QDialog::keyPressEvent(event);
22 | }
23 | }
24 |
25 | void custom_dialog::closeEvent(QCloseEvent* event)
26 | {
27 | // spontaneous: don't close on external system level events like Alt+F4
28 | if (m_disable_cancel && event->spontaneous())
29 | {
30 | event->ignore();
31 | }
32 | else
33 | {
34 | QDialog::closeEvent(event);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/user_account.cpp:
--------------------------------------------------------------------------------
1 | #include "user_account.h"
2 |
3 | UserAccount::UserAccount(const std::string& user_id)
4 | {
5 | // Setting userId.
6 | m_user_id = user_id;
7 |
8 | // Setting userDir.
9 | m_user_dir = Emulator::GetHddDir() + "home/" + m_user_id + "/";
10 |
11 | // Setting userName.
12 | fs::file file;
13 | if (file.open(m_user_dir + "localusername", fs::read))
14 | {
15 | m_username = file.to_string();
16 | file.close();
17 |
18 | if (m_username.length() > 16) // max of 16 chars on real PS3
19 | {
20 | m_username = m_username.substr(0, 16);
21 | LOG_WARNING(GENERAL, "UserAccount: localusername of userId=%s was too long, cropped to: %s", m_user_id, m_username);
22 | }
23 | }
24 | else
25 | {
26 | LOG_ERROR(GENERAL, "UserAccount: localusername file read error (userId=%s, userDir=%s).", m_user_id, m_user_dir);
27 | }
28 | }
29 |
30 | UserAccount::~UserAccount()
31 | {
32 | }
33 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/trophy_notification_helper.cpp:
--------------------------------------------------------------------------------
1 | #include "trophy_notification_helper.h"
2 |
3 | #include "trophy_notification_frame.h"
4 |
5 | #include "../Emu/System.h"
6 | #include "../Emu/RSX/Overlays/overlays.h"
7 |
8 | s32 trophy_notification_helper::ShowTrophyNotification(const SceNpTrophyDetails& trophy, const std::vector& trophy_icon_buffer)
9 | {
10 | if (auto manager = g_fxo->get())
11 | {
12 | return manager->create()->show(trophy, trophy_icon_buffer);
13 | }
14 |
15 | Emu.CallAfter([=]
16 | {
17 | trophy_notification_frame* trophy_notification = new trophy_notification_frame(trophy_icon_buffer, trophy, m_game_window->frameGeometry().height() / 10);
18 |
19 | // Move notification to upper lefthand corner
20 | trophy_notification->move(m_game_window->mapToGlobal(QPoint(0, 0)));
21 | trophy_notification->show();
22 | });
23 |
24 | return 0;
25 | }
26 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/progress_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 |
5 | #include
6 |
7 | #ifdef _WIN32
8 | #include
9 | #include
10 | #include
11 | #include
12 | #elif HAVE_QTDBUS
13 | #include
14 | #include
15 | #endif
16 |
17 | class progress_dialog : public QProgressDialog
18 | {
19 | public:
20 | progress_dialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *parent = Q_NULLPTR, Qt::WindowFlags flags = Qt::WindowFlags());
21 | ~progress_dialog();
22 | void SetValue(int progress);
23 |
24 | private:
25 | #ifdef _WIN32
26 | std::unique_ptr m_tb_button = nullptr;
27 | QWinTaskbarProgress* m_tb_progress = nullptr;
28 | #elif HAVE_QTDBUS
29 | void UpdateProgress(int progress, bool disable = false);
30 | #endif
31 | };
32 |
--------------------------------------------------------------------------------
/rpcs3/Emu/RSX/GL/GLCommonDecompiler.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "GLCommonDecompiler.h"
3 |
4 | namespace gl
5 | {
6 | static constexpr std::array, 17> varying_registers =
7 | {{
8 | {"diff_color", 1},
9 | {"spec_color", 2},
10 | {"diff_color1", 3},
11 | {"spec_color1", 4},
12 | {"fogc", 5},
13 | {"fog_c", 5},
14 | {"tc0", 6},
15 | {"tc1", 7},
16 | {"tc2", 8},
17 | {"tc3", 9},
18 | {"tc4", 10},
19 | {"tc5", 11},
20 | {"tc6", 12},
21 | {"tc7", 13},
22 | {"tc8", 14},
23 | {"tc9", 15}
24 | }};
25 |
26 | int get_varying_register_location(std::string_view varying_register_name)
27 | {
28 | for (const auto& varying_register : varying_registers)
29 | {
30 | if (varying_register.first == varying_register_name)
31 | {
32 | return varying_register.second;
33 | }
34 | }
35 |
36 | fmt::throw_exception("Unknown register name: %s" HERE, varying_register_name);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/rpcs3/Loader/PUP.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../../Utilities/types.h"
4 | #include "../../Utilities/File.h"
5 |
6 | #include
7 |
8 | struct PUPHeader
9 | {
10 | le_t magic;
11 | be_t package_version;
12 | be_t image_version;
13 | be_t file_count;
14 | be_t header_length;
15 | be_t data_length;
16 | };
17 |
18 | struct PUPFileEntry
19 | {
20 | be_t entry_id;
21 | be_t data_offset;
22 | be_t data_length;
23 | u8 padding[8];
24 | };
25 |
26 | struct PUPHashEntry
27 | {
28 | be_t entry_id;
29 | u8 hash[20];
30 | u8 padding[4];
31 | };
32 |
33 | class pup_object
34 | {
35 | const fs::file& m_file;
36 | bool isValid = true;
37 |
38 | std::vector m_file_tbl;
39 | std::vector m_hash_tbl;
40 |
41 | public:
42 | pup_object(const fs::file& file);
43 |
44 | explicit operator bool() const { return isValid; }
45 |
46 | fs::file get_file(u64 entry_id);
47 | };
48 |
--------------------------------------------------------------------------------
/rpcs3/Loader/TRP.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | struct TRPHeader
4 | {
5 | be_t trp_magic;
6 | be_t trp_version;
7 | be_t trp_file_size;
8 | be_t trp_files_count;
9 | be_t trp_element_size;
10 | be_t trp_dev_flag;
11 | unsigned char sha1[20];
12 | unsigned char padding[16];
13 | };
14 |
15 | struct TRPEntry
16 | {
17 | char name[32];
18 | be_t offset;
19 | be_t size;
20 | be_t unknown;
21 | char padding[12];
22 | };
23 |
24 | class TRPLoader final
25 | {
26 | const fs::file& trp_f;
27 | TRPHeader m_header;
28 | std::vector m_entries;
29 |
30 | public:
31 | TRPLoader(const fs::file& f);
32 |
33 | bool Install(const std::string& dest, bool show = false);
34 | bool LoadHeader(bool show = false);
35 | u64 GetRequiredSpace() const;
36 |
37 | bool ContainsEntry(const char *filename);
38 | void RemoveEntry(const char *filename);
39 | void RenameEntry(const char *oldname, const char *newname);
40 | };
41 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellVideoUpload.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include "Emu/Cell/PPUModule.h"
3 |
4 | #include "cellVideoUpload.h"
5 | #include "cellSysutil.h"
6 |
7 | LOG_CHANNEL(cellVideoUpload);
8 |
9 | error_code cellVideoUploadInitialize(vm::cptr pParam, vm::ptr cb, vm::ptr userdata)
10 | {
11 | cellVideoUpload.todo("cellVideoUploadInitialize(pParam=*0x%x, cb=*0x%x, userdata=*0x%x)", pParam, cb, userdata);
12 |
13 | sysutil_register_cb([=](ppu_thread& ppu) -> s32
14 | {
15 | vm::var pResultURL(128);
16 |
17 | cb(ppu, CELL_VIDEO_UPLOAD_STATUS_INITIALIZED, CELL_OK, pResultURL, userdata);
18 | cb(ppu, CELL_VIDEO_UPLOAD_STATUS_FINALIZED, CELL_OK, pResultURL, userdata);
19 |
20 | return CELL_OK;
21 | });
22 |
23 | return CELL_OK;
24 | }
25 |
26 | DECLARE(ppu_module_manager::cellVideoUpload)("cellVideoUpload", []()
27 | {
28 | REG_FUNC(cellVideoUpload, cellVideoUploadInitialize);
29 | });
30 |
--------------------------------------------------------------------------------
/rpcs3/rpcs3qt/register_editor_dialog.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "stdafx.h"
4 | #include "Emu/System.h"
5 | #include "Emu/CPU/CPUThread.h"
6 | #include "Emu/CPU/CPUDisAsm.h"
7 | #include "Emu/Cell/PPUThread.h"
8 | #include "Emu/Cell/SPUThread.h"
9 |
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 |
18 | class register_editor_dialog : public QDialog
19 | {
20 | Q_OBJECT
21 |
22 | u32 m_pc;
23 | CPUDisAsm* m_disasm;
24 | QComboBox* m_register_combo;
25 | QLineEdit* m_value_line;
26 |
27 | public:
28 | std::weak_ptr cpu;
29 |
30 | public:
31 | register_editor_dialog(QWidget *parent, u32 _pc, const std::shared_ptr& _cpu, CPUDisAsm* _disasm);
32 |
33 | private:
34 | void OnOkay(const std::shared_ptr& _cpu);
35 |
36 | private Q_SLOTS:
37 | void updateRegister(const QString& text);
38 | };
39 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/cellFs.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Cell/lv2/sys_fs.h"
4 | #include "Emu/Memory/vm_ptr.h"
5 |
6 | // CellFsRingBuffer.copy
7 | enum : s32
8 | {
9 | CELL_FS_ST_COPY = 0,
10 | CELL_FS_ST_COPYLESS = 1,
11 | };
12 |
13 | struct CellFsRingBuffer
14 | {
15 | be_t ringbuf_size;
16 | be_t block_size;
17 | be_t transfer_rate;
18 | be_t copy;
19 | };
20 |
21 | // cellFsStReadGetStatus status
22 | enum : u64
23 | {
24 | CELL_FS_ST_INITIALIZED = 0x0001,
25 | CELL_FS_ST_NOT_INITIALIZED = 0x0002,
26 | CELL_FS_ST_STOP = 0x0100,
27 | CELL_FS_ST_PROGRESS = 0x0200,
28 | };
29 |
30 | enum : s32
31 | {
32 | CELL_FS_AIO_MAX_FS = 10, // cellFsAioInit limit
33 | CELL_FS_AIO_MAX_REQUEST = 32, // cellFsAioRead request limit per mount point
34 | };
35 |
36 | struct CellFsAio
37 | {
38 | be_t fd;
39 | be_t offset;
40 | vm::bptrb buf;
41 | be_t size;
42 | be_t user_data;
43 | };
44 |
--------------------------------------------------------------------------------
/rpcs3/Emu/Cell/Modules/sys_net_.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Emu/Cell/lv2/sys_net.h"
4 | #include "Emu/Memory/vm.h"
5 |
6 | struct sys_net_sockinfo_t
7 | {
8 | be_t s;
9 | be_t proto;
10 | be_t recv_queue_length;
11 | be_t send_queue_length;
12 | sys_net_in_addr local_adr;
13 | be_t local_port;
14 | sys_net_in_addr remote_adr;
15 | be_t remote_port;
16 | be_t state;
17 | };
18 |
19 | struct sys_net_sockinfo_ex_t
20 | {
21 | be_t s;
22 | be_t proto;
23 | be_t recv_queue_length;
24 | be_t send_queue_length;
25 | sys_net_in_addr local_adr;
26 | be_t local_port;
27 | sys_net_in_addr remote_adr;
28 | be_t remote_port;
29 | be_t state;
30 | be_t socket_type;
31 | be_t local_vport;
32 | be_t remote_vport;
33 | be_t reserved[8];
34 | };
35 |
36 | struct sys_net_initialize_parameter_t
37 | {
38 | vm::bptr memory;
39 | be_t memory_size;
40 | be_t flags;
41 | };
42 |
--------------------------------------------------------------------------------
/rpcs3/Loader/PUP.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 |
3 | #include "PUP.h"
4 |
5 | pup_object::pup_object(const fs::file& file): m_file(file)
6 | {
7 | if (!file)
8 | {
9 | isValid = false;
10 | return;
11 | }
12 |
13 | PUPHeader m_header;
14 | m_file.read(m_header);
15 | if (m_header.magic != "SCEUF\0\0\0"_u64)
16 | {
17 | isValid = false;
18 | return;
19 | }
20 |
21 | m_file_tbl.resize(m_header.file_count);
22 | m_file.read(m_file_tbl);
23 | m_hash_tbl.resize(m_header.file_count);
24 | m_file.read(m_hash_tbl);
25 | }
26 |
27 | fs::file pup_object::get_file(u64 entry_id)
28 | {
29 | if (!isValid) return fs::file();
30 |
31 | for (PUPFileEntry file_entry : m_file_tbl)
32 | {
33 | if (file_entry.entry_id == entry_id)
34 | {
35 | std::vector file_buf(file_entry.data_length);
36 | m_file.seek(file_entry.data_offset);
37 | m_file.read(file_buf, file_entry.data_length);
38 | return fs::make_stream(std::move(file_buf));
39 | }
40 | }
41 | return fs::file();
42 | }
43 |
--------------------------------------------------------------------------------
/rpcs3/Loader/TAR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include