├── .clang-format ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── emulation_bug_report.yaml │ └── feature_report.yaml └── workflows │ ├── build.yml │ ├── build_check.yml │ ├── deploy_release.yml │ ├── determine_release_version.yml │ └── generate_pot.yml ├── .gitignore ├── .gitmodules ├── BUILD.md ├── CMakeLists.txt ├── CMakeSettings.json ├── CODING_STYLE.md ├── LICENSE.txt ├── README.md ├── bin ├── gameProfiles │ └── default │ │ ├── 0005000010101a00.ini │ │ ├── 0005000010101b00.ini │ │ ├── 0005000010104d00.ini │ │ ├── 0005000010106100.ini │ │ ├── 000500001010EB00.ini │ │ ├── 000500001010F900.ini │ │ ├── 000500001010ac00.ini │ │ ├── 000500001010ad00.ini │ │ ├── 000500001010b100.ini │ │ ├── 000500001010b200.ini │ │ ├── 000500001010dc00.ini │ │ ├── 000500001010dd00.ini │ │ ├── 000500001010e600.ini │ │ ├── 000500001010e700.ini │ │ ├── 000500001010ec00.ini │ │ ├── 000500001010ed00.ini │ │ ├── 000500001010ef00.ini │ │ ├── 000500001010f100.ini │ │ ├── 000500001010f200.ini │ │ ├── 000500001010f500.ini │ │ ├── 0005000010110100.ini │ │ ├── 0005000010110600.ini │ │ ├── 0005000010110700.ini │ │ ├── 0005000010110E00.ini │ │ ├── 0005000010110f00.ini │ │ ├── 0005000010111000.ini │ │ ├── 0005000010111400.ini │ │ ├── 0005000010111600.ini │ │ ├── 0005000010112000.ini │ │ ├── 0005000010112300.ini │ │ ├── 0005000010113000.ini │ │ ├── 0005000010113300.ini │ │ ├── 0005000010113d00.ini │ │ ├── 0005000010115d00.ini │ │ ├── 0005000010116100.ini │ │ ├── 0005000010117200.ini │ │ ├── 0005000010118300.ini │ │ ├── 000500001011a600.ini │ │ ├── 000500001011af00.ini │ │ ├── 000500001011b200.ini │ │ ├── 0005000010128600.ini │ │ ├── 0005000010129000.ini │ │ ├── 0005000010129200.ini │ │ ├── 000500001012BC00.ini │ │ ├── 000500001012BD00.ini │ │ ├── 000500001012F000.ini │ │ ├── 000500001012b200.ini │ │ ├── 000500001012ba00.ini │ │ ├── 000500001012be00.ini │ │ ├── 000500001012c500.ini │ │ ├── 000500001012da00.ini │ │ ├── 0005000010131F00.ini │ │ ├── 0005000010132c00.ini │ │ ├── 0005000010132d00.ini │ │ ├── 0005000010133b00.ini │ │ ├── 0005000010134e00.ini │ │ ├── 0005000010135500.ini │ │ ├── 0005000010135e00.ini │ │ ├── 0005000010136300.ini │ │ ├── 0005000010136c00.ini │ │ ├── 0005000010137F00.ini │ │ ├── 0005000010137c00.ini │ │ ├── 0005000010138300.ini │ │ ├── 0005000010138a00.ini │ │ ├── 0005000010138f00.ini │ │ ├── 0005000010140000.ini │ │ ├── 0005000010143200.ini │ │ ├── 0005000010143500.ini │ │ ├── 0005000010143600.ini │ │ ├── 0005000010144800.ini │ │ ├── 0005000010144f00.ini │ │ ├── 0005000010145000.ini │ │ ├── 0005000010145c00.ini │ │ ├── 0005000010145d00.ini │ │ ├── 0005000010147e00.ini │ │ ├── 000500001014c100.ini │ │ ├── 000500001014c600.ini │ │ ├── 000500001014cb00.ini │ │ ├── 000500001014d900.ini │ │ ├── 0005000010154600.ini │ │ ├── 000500001015b200.ini │ │ ├── 0005000010161a00.ini │ │ ├── 0005000010162200.ini │ │ ├── 0005000010162a00.ini │ │ ├── 0005000010162b00.ini │ │ ├── 000500001016a200.ini │ │ ├── 000500001016ab00.ini │ │ ├── 000500001016b200.ini │ │ ├── 000500001016d400.ini │ │ ├── 000500001016d800.ini │ │ ├── 000500001016da00.ini │ │ ├── 000500001016e000.ini │ │ ├── 000500001016e800.ini │ │ ├── 000500001016ea00.ini │ │ ├── 000500001016fc00.ini │ │ ├── 0005000010170100.ini │ │ ├── 0005000010172900.ini │ │ ├── 0005000010173400.ini │ │ ├── 0005000010176300.ini │ │ ├── 0005000010176900.ini │ │ ├── 0005000010176a00.ini │ │ ├── 0005000010177000.ini │ │ ├── 0005000010177500.ini │ │ ├── 0005000010177600.ini │ │ ├── 0005000010177700.ini │ │ ├── 000500001017d800.ini │ │ ├── 000500001017d900.ini │ │ ├── 000500001017da00.ini │ │ ├── 000500001017e400.ini │ │ ├── 0005000010180500.ini │ │ ├── 0005000010180600.ini │ │ ├── 0005000010180700.ini │ │ ├── 0005000010183000.ini │ │ ├── 0005000010184900.ini │ │ ├── 0005000010184E00.ini │ │ ├── 0005000010184d00.ini │ │ ├── 0005000010185400.ini │ │ ├── 0005000010189f00.ini │ │ ├── 000500001018ab00.ini │ │ ├── 000500001018d800.ini │ │ ├── 000500001018d900.ini │ │ ├── 000500001018f100.ini │ │ ├── 000500001018f400.ini │ │ ├── 000500001018fd00.ini │ │ ├── 0005000010190300.ini │ │ ├── 0005000010193f00.ini │ │ ├── 0005000010195e00.ini │ │ ├── 0005000010197300.ini │ │ ├── 0005000010197800.ini │ │ ├── 0005000010199e00.ini │ │ ├── 000500001019ab00.ini │ │ ├── 000500001019b000.ini │ │ ├── 000500001019b200.ini │ │ ├── 000500001019ca00.ini │ │ ├── 000500001019e500.ini │ │ ├── 000500001019e600.ini │ │ ├── 000500001019ea00.ini │ │ ├── 000500001019ee00.ini │ │ ├── 00050000101C9300.ini │ │ ├── 00050000101E4100.ini │ │ ├── 00050000101a1200.ini │ │ ├── 00050000101a1800.ini │ │ ├── 00050000101a3b00.ini │ │ ├── 00050000101a4300.ini │ │ ├── 00050000101a4800.ini │ │ ├── 00050000101a4900.ini │ │ ├── 00050000101a7f00.ini │ │ ├── 00050000101a9c00.ini │ │ ├── 00050000101a9e00.ini │ │ ├── 00050000101acc00.ini │ │ ├── 00050000101b0100.ini │ │ ├── 00050000101b4e00.ini │ │ ├── 00050000101b9900.ini │ │ ├── 00050000101bc300.ini │ │ ├── 00050000101c3100.ini │ │ ├── 00050000101c4200.ini │ │ ├── 00050000101c4300.ini │ │ ├── 00050000101c4c00.ini │ │ ├── 00050000101c4d00.ini │ │ ├── 00050000101c6c00.ini │ │ ├── 00050000101c7600.ini │ │ ├── 00050000101c7b00.ini │ │ ├── 00050000101c7d00.ini │ │ ├── 00050000101c9400.ini │ │ ├── 00050000101c9500.ini │ │ ├── 00050000101c9a00.ini │ │ ├── 00050000101cc900.ini │ │ ├── 00050000101ccf00.ini │ │ ├── 00050000101ce000.ini │ │ ├── 00050000101ce800.ini │ │ ├── 00050000101d2100.ini │ │ ├── 00050000101d4500.ini │ │ ├── 00050000101d4d00.ini │ │ ├── 00050000101d5000.ini │ │ ├── 00050000101d5500.ini │ │ ├── 00050000101d6000.ini │ │ ├── 00050000101d6d00.ini │ │ ├── 00050000101d7500.ini │ │ ├── 00050000101d8900.ini │ │ ├── 00050000101d8d00.ini │ │ ├── 00050000101d9600.ini │ │ ├── 00050000101d9d00.ini │ │ ├── 00050000101dac00.ini │ │ ├── 00050000101daf00.ini │ │ ├── 00050000101db000.ini │ │ ├── 00050000101dbb00.ini │ │ ├── 00050000101dbc00.ini │ │ ├── 00050000101dbe00.ini │ │ ├── 00050000101dbf00.ini │ │ ├── 00050000101dc000.ini │ │ ├── 00050000101dc200.ini │ │ ├── 00050000101dd000.ini │ │ ├── 00050000101dd600.ini │ │ ├── 00050000101dd700.ini │ │ ├── 00050000101ddf00.ini │ │ ├── 00050000101e0100.ini │ │ ├── 00050000101e1800.ini │ │ ├── 00050000101e1a00.ini │ │ ├── 00050000101e1b00.ini │ │ ├── 00050000101e3800.ini │ │ ├── 00050000101e4200.ini │ │ ├── 00050000101e5300.ini │ │ ├── 00050000101e5400.ini │ │ ├── 00050000101e5e00.ini │ │ ├── 00050000101e7300.ini │ │ ├── 00050000101e7400.ini │ │ ├── 00050000101e9300.ini │ │ ├── 00050000101e9400.ini │ │ ├── 00050000101eb300.ini │ │ ├── 00050000101ec700.ini │ │ ├── 00050000101ecf00.ini │ │ ├── 00050000101f1300.ini │ │ ├── 00050000101f2800.ini │ │ ├── 00050000101f4a00.ini │ │ ├── 00050000101f5700.ini │ │ ├── 00050000101f6f00.ini │ │ ├── 00050000101f7600.ini │ │ ├── 00050000101f9700.ini │ │ ├── 00050000101fa600.ini │ │ ├── 00050000101fd100.ini │ │ ├── 00050000101ff200.ini │ │ ├── 00050000101ffc00.ini │ │ ├── 00050000101ffe00.ini │ │ ├── 0005000010200300.ini │ │ ├── 0005000010200b00.ini │ │ ├── 0005000010204a00.ini │ │ ├── 0005000010207300.ini │ │ ├── 0005000010207500.ini │ │ ├── 000500001020a200.ini │ │ ├── 000500001020b600.ini │ │ ├── 0005000010211b00.ini │ │ ├── 0005000C1012BC00.ini │ │ ├── 0005000C1012BD00.ini │ │ ├── 0005000C1012BE00.ini │ │ ├── 0005000e1019c800.ini │ │ └── 000500c01017cd00.ini └── resources │ ├── ar │ └── ‏‏cemu.mo │ ├── ca │ └── cemu.mo │ ├── de │ └── cemu.mo │ ├── es │ └── cemu.mo │ ├── fr │ └── cemu.mo │ ├── he │ └── cemu.mo │ ├── hu │ └── cemu.mo │ ├── it │ └── cemu.mo │ ├── ja │ └── cemu.mo │ ├── ko │ └── cemu.mo │ ├── nb │ └── cemu.mo │ ├── nl │ └── cemu.mo │ ├── pl │ └── cemu.mo │ ├── pt │ └── cemu.mo │ ├── ru │ └── cemu.mo │ ├── sharedFonts │ ├── CafeCn.ttf │ ├── CafeKr.ttf │ ├── CafeStd.ttf │ └── CafeTw.ttf │ ├── sv │ └── cemu.mo │ ├── tr │ └── cemu.mo │ ├── uk │ └── cemu.mo │ └── zh │ └── cemu.mo ├── boost.natvis ├── cmake ├── ECMFindModuleHelpers.cmake ├── ECMFindModuleHelpersStub.cmake ├── FindGTK3.cmake ├── FindWayland.cmake ├── FindWaylandProtocols.cmake ├── FindWaylandScanner.cmake ├── FindZArchive.cmake ├── Findbluez.cmake ├── Findimgui.cmake ├── Findlibusb.cmake ├── FindwxWidgets.cmake └── Findzstd.cmake ├── dependencies ├── DirectX_2010 │ ├── XAudio2.h │ ├── audiodefs.h │ ├── comdecl.h │ └── xma2defs.h ├── discord-rpc │ ├── .clang-format │ ├── .gitignore │ ├── .travis.yml │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── appveyor.yml │ ├── build.py │ ├── documentation │ │ ├── hard-mode.md │ │ └── images │ │ │ ├── rp-dev-dashboard.png │ │ │ ├── rp-profile-view.png │ │ │ └── rp-secret-example.png │ ├── examples │ │ ├── button-clicker │ │ │ ├── .gitignore │ │ │ ├── Assets │ │ │ │ ├── DiscordController.cs │ │ │ │ ├── DiscordController.cs.meta │ │ │ │ ├── DiscordRpc.cs │ │ │ │ ├── DiscordRpc.cs.meta │ │ │ │ ├── Editor │ │ │ │ │ ├── BuildHelper.cs │ │ │ │ │ └── BuildHelper.cs.meta │ │ │ │ ├── main.unity │ │ │ │ └── main.unity.meta │ │ │ ├── ProjectSettings │ │ │ │ ├── AudioManager.asset │ │ │ │ ├── ClusterInputManager.asset │ │ │ │ ├── DynamicsManager.asset │ │ │ │ ├── EditorBuildSettings.asset │ │ │ │ ├── EditorSettings.asset │ │ │ │ ├── GraphicsSettings.asset │ │ │ │ ├── InputManager.asset │ │ │ │ ├── NavMeshAreas.asset │ │ │ │ ├── NetworkManager.asset │ │ │ │ ├── Physics2DSettings.asset │ │ │ │ ├── ProjectSettings.asset │ │ │ │ ├── ProjectVersion.txt │ │ │ │ ├── QualitySettings.asset │ │ │ │ ├── TagManager.asset │ │ │ │ ├── TimeManager.asset │ │ │ │ └── UnityConnectSettings.asset │ │ │ └── UnityPackageManager │ │ │ │ └── manifest.json │ │ ├── send-presence │ │ │ ├── CMakeLists.txt │ │ │ └── send-presence.c │ │ └── unrealstatus │ │ │ ├── .gitignore │ │ │ ├── Config │ │ │ ├── DefaultEditor.ini │ │ │ ├── DefaultEngine.ini │ │ │ └── DefaultGame.ini │ │ │ ├── Content │ │ │ ├── MainScreenBP.uasset │ │ │ ├── MouseGameModeBP.uasset │ │ │ ├── MousePlayerControllerBP.uasset │ │ │ └── ShowTheUILevel.umap │ │ │ ├── Plugins │ │ │ └── discordrpc │ │ │ │ ├── DiscordRpc.uplugin │ │ │ │ ├── Resources │ │ │ │ ├── Icon128.png │ │ │ │ └── discord.png │ │ │ │ └── Source │ │ │ │ ├── DiscordRpc │ │ │ │ ├── DiscordRpc.Build.cs │ │ │ │ ├── Private │ │ │ │ │ ├── DiscordRpc.cpp │ │ │ │ │ ├── DiscordRpcBlueprint.cpp │ │ │ │ │ └── DiscordRpcPrivatePCH.h │ │ │ │ └── Public │ │ │ │ │ ├── DiscordRpc.h │ │ │ │ │ └── DiscordRpcBlueprint.h │ │ │ │ └── ThirdParty │ │ │ │ └── DiscordRpcLibrary │ │ │ │ └── DiscordRpcLibrary.Build.cs │ │ │ ├── Source │ │ │ ├── unrealstatus.Target.cs │ │ │ ├── unrealstatus │ │ │ │ ├── unrealstatus.Build.cs │ │ │ │ ├── unrealstatus.cpp │ │ │ │ ├── unrealstatus.h │ │ │ │ ├── unrealstatusGameModeBase.cpp │ │ │ │ └── unrealstatusGameModeBase.h │ │ │ └── unrealstatusEditor.Target.cs │ │ │ └── unrealstatus.uproject │ ├── include │ │ ├── discord_register.h │ │ └── discord_rpc.h │ └── src │ │ ├── CMakeLists.txt │ │ ├── backoff.h │ │ ├── connection.h │ │ ├── connection_unix.cpp │ │ ├── connection_win.cpp │ │ ├── discord_register_linux.cpp │ │ ├── discord_register_osx.m │ │ ├── discord_register_win.cpp │ │ ├── discord_rpc.cpp │ │ ├── dllmain.cpp │ │ ├── msg_queue.h │ │ ├── rpc_connection.cpp │ │ ├── rpc_connection.h │ │ ├── serialization.cpp │ │ └── serialization.h ├── gamemode │ ├── CMakeLists.txt │ └── lib │ │ ├── client_loader.c │ │ └── gamemode_client.h ├── ih264d │ ├── CHANGES │ ├── CMakeLists.txt │ ├── CMakeSettings.json │ ├── NOTICE │ ├── common │ │ ├── arm │ │ │ ├── ih264_arm_memory_barrier.s │ │ │ ├── ih264_deblk_chroma_a9.s │ │ │ ├── ih264_deblk_luma_a9.s │ │ │ ├── ih264_default_weighted_pred_a9q.s │ │ │ ├── ih264_ihadamard_scaling_a9.s │ │ │ ├── ih264_inter_pred_chroma_a9q.s │ │ │ ├── ih264_inter_pred_filters_luma_horz_a9q.s │ │ │ ├── ih264_inter_pred_filters_luma_vert_a9q.s │ │ │ ├── ih264_inter_pred_luma_bilinear_a9q.s │ │ │ ├── ih264_inter_pred_luma_copy_a9q.s │ │ │ ├── ih264_inter_pred_luma_horz_hpel_vert_hpel_a9q.s │ │ │ ├── ih264_inter_pred_luma_horz_hpel_vert_qpel_a9q.s │ │ │ ├── ih264_inter_pred_luma_horz_qpel_a9q.s │ │ │ ├── ih264_inter_pred_luma_horz_qpel_vert_hpel_a9q.s │ │ │ ├── ih264_inter_pred_luma_horz_qpel_vert_qpel_a9q.s │ │ │ ├── ih264_inter_pred_luma_vert_qpel_a9q.s │ │ │ ├── ih264_intra_pred_chroma_a9q.s │ │ │ ├── ih264_intra_pred_luma_16x16_a9q.s │ │ │ ├── ih264_intra_pred_luma_4x4_a9q.s │ │ │ ├── ih264_intra_pred_luma_8x8_a9q.s │ │ │ ├── ih264_iquant_itrans_recon_a9.s │ │ │ ├── ih264_iquant_itrans_recon_dc_a9.s │ │ │ ├── ih264_mem_fns_neon.s │ │ │ ├── ih264_padding_neon.s │ │ │ ├── ih264_platform_macros.h │ │ │ ├── ih264_resi_trans_quant_a9.s │ │ │ ├── ih264_weighted_bi_pred_a9q.s │ │ │ └── ih264_weighted_pred_a9q.s │ │ ├── armv8 │ │ │ ├── ih264_deblk_chroma_av8.s │ │ │ ├── ih264_deblk_luma_av8.s │ │ │ ├── ih264_default_weighted_pred_av8.s │ │ │ ├── ih264_ihadamard_scaling_av8.s │ │ │ ├── ih264_inter_pred_chroma_av8.s │ │ │ ├── ih264_inter_pred_filters_luma_horz_av8.s │ │ │ ├── ih264_inter_pred_filters_luma_vert_av8.s │ │ │ ├── ih264_inter_pred_luma_copy_av8.s │ │ │ ├── ih264_inter_pred_luma_horz_hpel_vert_hpel_av8.s │ │ │ ├── ih264_inter_pred_luma_horz_hpel_vert_qpel_av8.s │ │ │ ├── ih264_inter_pred_luma_horz_qpel_av8.s │ │ │ ├── ih264_inter_pred_luma_horz_qpel_vert_hpel_av8.s │ │ │ ├── ih264_inter_pred_luma_horz_qpel_vert_qpel_av8.s │ │ │ ├── ih264_inter_pred_luma_vert_qpel_av8.s │ │ │ ├── ih264_intra_pred_chroma_av8.s │ │ │ ├── ih264_intra_pred_luma_16x16_av8.s │ │ │ ├── ih264_intra_pred_luma_4x4_av8.s │ │ │ ├── ih264_intra_pred_luma_8x8_av8.s │ │ │ ├── ih264_iquant_itrans_recon_av8.s │ │ │ ├── ih264_iquant_itrans_recon_dc_av8.s │ │ │ ├── ih264_mem_fns_neon_av8.s │ │ │ ├── ih264_neon_macros.s │ │ │ ├── ih264_padding_neon_av8.s │ │ │ ├── ih264_platform_macros.h │ │ │ ├── ih264_resi_trans_quant_av8.s │ │ │ ├── ih264_weighted_bi_pred_av8.s │ │ │ └── ih264_weighted_pred_av8.s │ │ ├── ih264_buf_mgr.c │ │ ├── ih264_buf_mgr.h │ │ ├── ih264_cabac_tables.c │ │ ├── ih264_cabac_tables.h │ │ ├── ih264_cavlc_tables.c │ │ ├── ih264_cavlc_tables.h │ │ ├── ih264_chroma_intra_pred_filters.c │ │ ├── ih264_common_tables.c │ │ ├── ih264_common_tables.h │ │ ├── ih264_deblk_edge_filters.c │ │ ├── ih264_deblk_edge_filters.h │ │ ├── ih264_deblk_tables.c │ │ ├── ih264_deblk_tables.h │ │ ├── ih264_debug.h │ │ ├── ih264_defs.h │ │ ├── ih264_disp_mgr.c │ │ ├── ih264_disp_mgr.h │ │ ├── ih264_dpb_mgr.c │ │ ├── ih264_dpb_mgr.h │ │ ├── ih264_error.h │ │ ├── ih264_ihadamard_scaling.c │ │ ├── ih264_inter_pred_filters.c │ │ ├── ih264_inter_pred_filters.h │ │ ├── ih264_intra_pred_filters.h │ │ ├── ih264_iquant_itrans_recon.c │ │ ├── ih264_list.c │ │ ├── ih264_list.h │ │ ├── ih264_luma_intra_pred_filters.c │ │ ├── ih264_macros.h │ │ ├── ih264_mem_fns.c │ │ ├── ih264_mem_fns.h │ │ ├── ih264_padding.c │ │ ├── ih264_padding.h │ │ ├── ih264_resi_trans.h │ │ ├── ih264_resi_trans_quant.c │ │ ├── ih264_size_defs.h │ │ ├── ih264_structs.h │ │ ├── ih264_trans_data.c │ │ ├── ih264_trans_data.h │ │ ├── ih264_trans_macros.h │ │ ├── ih264_trans_quant_itrans_iquant.h │ │ ├── ih264_typedefs.h │ │ ├── ih264_weighted_pred.c │ │ ├── ih264_weighted_pred.h │ │ ├── ithread.c │ │ ├── ithread.h │ │ ├── mips │ │ │ └── ih264_platform_macros.h │ │ └── x86 │ │ │ ├── ih264_chroma_intra_pred_filters_ssse3.c │ │ │ ├── ih264_deblk_chroma_ssse3.c │ │ │ ├── ih264_deblk_luma_ssse3.c │ │ │ ├── ih264_ihadamard_scaling_sse42.c │ │ │ ├── ih264_ihadamard_scaling_ssse3.c │ │ │ ├── ih264_inter_pred_filters_ssse3.c │ │ │ ├── ih264_iquant_itrans_recon_dc_ssse3.c │ │ │ ├── ih264_iquant_itrans_recon_sse42.c │ │ │ ├── ih264_iquant_itrans_recon_ssse3.c │ │ │ ├── ih264_luma_intra_pred_filters_ssse3.c │ │ │ ├── ih264_mem_fns_ssse3.c │ │ │ ├── ih264_padding_ssse3.c │ │ │ ├── ih264_platform_macros.h │ │ │ ├── ih264_resi_trans_quant_sse42.c │ │ │ └── ih264_weighted_pred_sse42.c │ └── decoder │ │ ├── arm │ │ ├── ih264d_function_selector.c │ │ ├── ih264d_function_selector_a9q.c │ │ └── ih264d_function_selector_av8.c │ │ ├── ih264d.h │ │ ├── ih264d_api.c │ │ ├── ih264d_bitstrm.c │ │ ├── ih264d_bitstrm.h │ │ ├── ih264d_cabac.c │ │ ├── ih264d_cabac.h │ │ ├── ih264d_cabac_init_tables.c │ │ ├── ih264d_compute_bs.c │ │ ├── ih264d_deblocking.c │ │ ├── ih264d_deblocking.h │ │ ├── ih264d_debug.h │ │ ├── ih264d_defs.h │ │ ├── ih264d_dpb_manager.h │ │ ├── ih264d_dpb_mgr.c │ │ ├── ih264d_error_handler.h │ │ ├── ih264d_format_conv.c │ │ ├── ih264d_format_conv.h │ │ ├── ih264d_function_selector.h │ │ ├── ih264d_function_selector_generic.c │ │ ├── ih264d_inter_pred.c │ │ ├── ih264d_inter_pred.h │ │ ├── ih264d_mb_utils.c │ │ ├── ih264d_mb_utils.h │ │ ├── ih264d_mem_request.h │ │ ├── ih264d_mvpred.c │ │ ├── ih264d_mvpred.h │ │ ├── ih264d_nal.c │ │ ├── ih264d_nal.h │ │ ├── ih264d_parse_bslice.c │ │ ├── ih264d_parse_cabac.c │ │ ├── ih264d_parse_cabac.h │ │ ├── ih264d_parse_cavlc.c │ │ ├── ih264d_parse_cavlc.h │ │ ├── ih264d_parse_headers.c │ │ ├── ih264d_parse_headers.h │ │ ├── ih264d_parse_islice.c │ │ ├── ih264d_parse_islice.h │ │ ├── ih264d_parse_mb_header.c │ │ ├── ih264d_parse_mb_header.h │ │ ├── ih264d_parse_pslice.c │ │ ├── ih264d_parse_slice.c │ │ ├── ih264d_parse_slice.h │ │ ├── ih264d_process_bslice.c │ │ ├── ih264d_process_bslice.h │ │ ├── ih264d_process_intra_mb.c │ │ ├── ih264d_process_intra_mb.h │ │ ├── ih264d_process_pslice.c │ │ ├── ih264d_process_pslice.h │ │ ├── ih264d_quant_scaling.c │ │ ├── ih264d_quant_scaling.h │ │ ├── ih264d_sei.c │ │ ├── ih264d_sei.h │ │ ├── ih264d_structs.h │ │ ├── ih264d_tables.c │ │ ├── ih264d_tables.h │ │ ├── ih264d_thread_compute_bs.c │ │ ├── ih264d_thread_compute_bs.h │ │ ├── ih264d_thread_parse_decode.c │ │ ├── ih264d_thread_parse_decode.h │ │ ├── ih264d_transfer_address.h │ │ ├── ih264d_utils.c │ │ ├── ih264d_utils.h │ │ ├── ih264d_vui.c │ │ ├── ih264d_vui.h │ │ ├── iv.h │ │ ├── ivd.h │ │ ├── mips │ │ └── ih264d_function_selector.c │ │ └── x86 │ │ ├── ih264d_function_selector.c │ │ ├── ih264d_function_selector_sse42.c │ │ └── ih264d_function_selector_ssse3.c ├── vcpkg_overlay_ports │ └── .gitkeep ├── vcpkg_overlay_ports_linux │ ├── .gitkeep │ ├── cairo │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glm │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gtk3 │ │ ├── portfile.cmake │ │ └── vcpkg.json │ └── libpng │ │ ├── portfile.cmake │ │ └── vcpkg.json └── vcpkg_overlay_ports_mac │ ├── .gitkeep │ └── libusb │ ├── portfile.cmake │ ├── usage │ └── vcpkg.json ├── dist ├── linux │ ├── appimage.sh │ ├── info.cemu.Cemu.desktop │ ├── info.cemu.Cemu.metainfo.xml │ └── info.cemu.Cemu.png ├── network_services.xml └── windows │ └── Cemu.manifest ├── src ├── CMakeLists.txt ├── Cafe │ ├── Account │ │ ├── Account.cpp │ │ ├── Account.h │ │ └── AccountError.h │ ├── CMakeLists.txt │ ├── CafeSystem.cpp │ ├── CafeSystem.h │ ├── Filesystem │ │ ├── FST │ │ │ ├── FST.cpp │ │ │ ├── FST.h │ │ │ ├── KeyCache.cpp │ │ │ ├── KeyCache.h │ │ │ └── fstUtil.h │ │ ├── WUD │ │ │ ├── wud.cpp │ │ │ └── wud.h │ │ ├── WUHB │ │ │ ├── RomFSStructs.h │ │ │ ├── WUHBReader.cpp │ │ │ └── WUHBReader.h │ │ ├── fsc.cpp │ │ ├── fsc.h │ │ ├── fscDeviceHostFS.cpp │ │ ├── fscDeviceHostFS.h │ │ ├── fscDeviceRedirect.cpp │ │ ├── fscDeviceWua.cpp │ │ ├── fscDeviceWud.cpp │ │ └── fscDeviceWuhb.cpp │ ├── GamePatch.cpp │ ├── GamePatch.h │ ├── GameProfile │ │ ├── GameProfile.cpp │ │ └── GameProfile.h │ ├── GraphicPack │ │ ├── GraphicPack2.cpp │ │ ├── GraphicPack2.h │ │ ├── GraphicPack2Patches.cpp │ │ ├── GraphicPack2Patches.h │ │ ├── GraphicPack2PatchesApply.cpp │ │ ├── GraphicPack2PatchesParser.cpp │ │ └── GraphicPackError.h │ ├── HW │ │ ├── ACR │ │ │ └── ACR.cpp │ │ ├── AI │ │ │ ├── AI.cpp │ │ │ └── AI.h │ │ ├── Common │ │ │ └── HwReg.h │ │ ├── Espresso │ │ │ ├── Const.h │ │ │ ├── Debugger │ │ │ │ ├── DebugSymbolStorage.cpp │ │ │ │ ├── DebugSymbolStorage.h │ │ │ │ ├── Debugger.cpp │ │ │ │ ├── Debugger.h │ │ │ │ ├── GDBBreakpoints.cpp │ │ │ │ ├── GDBBreakpoints.h │ │ │ │ ├── GDBStub.cpp │ │ │ │ └── GDBStub.h │ │ │ ├── EspressoISA.h │ │ │ ├── Interpreter │ │ │ │ ├── PPCInterpreterALU.hpp │ │ │ │ ├── PPCInterpreterFPU.cpp │ │ │ │ ├── PPCInterpreterHLE.cpp │ │ │ │ ├── PPCInterpreterHelper.h │ │ │ │ ├── PPCInterpreterImpl.cpp │ │ │ │ ├── PPCInterpreterInternal.h │ │ │ │ ├── PPCInterpreterLoadStore.hpp │ │ │ │ ├── PPCInterpreterMain.cpp │ │ │ │ ├── PPCInterpreterOPC.cpp │ │ │ │ ├── PPCInterpreterOPC.hpp │ │ │ │ ├── PPCInterpreterPS.cpp │ │ │ │ └── PPCInterpreterSPR.hpp │ │ │ ├── PPCCallback.h │ │ │ ├── PPCScheduler.cpp │ │ │ ├── PPCSchedulerLLE.cpp │ │ │ ├── PPCState.h │ │ │ ├── PPCTimer.cpp │ │ │ └── Recompiler │ │ │ │ ├── BackendAArch64 │ │ │ │ ├── BackendAArch64.cpp │ │ │ │ └── BackendAArch64.h │ │ │ │ ├── BackendX64 │ │ │ │ ├── BackendX64.cpp │ │ │ │ ├── BackendX64.h │ │ │ │ ├── BackendX64AVX.cpp │ │ │ │ ├── BackendX64BMI.cpp │ │ │ │ ├── BackendX64FPU.cpp │ │ │ │ ├── BackendX64Gen.cpp │ │ │ │ ├── BackendX64GenFPU.cpp │ │ │ │ ├── X64Emit.hpp │ │ │ │ └── x86Emitter.h │ │ │ │ ├── IML │ │ │ │ ├── IML.h │ │ │ │ ├── IMLAnalyzer.cpp │ │ │ │ ├── IMLDebug.cpp │ │ │ │ ├── IMLInstruction.cpp │ │ │ │ ├── IMLInstruction.h │ │ │ │ ├── IMLOptimizer.cpp │ │ │ │ ├── IMLRegisterAllocator.cpp │ │ │ │ ├── IMLRegisterAllocator.h │ │ │ │ ├── IMLRegisterAllocatorRanges.cpp │ │ │ │ ├── IMLRegisterAllocatorRanges.h │ │ │ │ ├── IMLSegment.cpp │ │ │ │ └── IMLSegment.h │ │ │ │ ├── PPCFunctionBoundaryTracker.h │ │ │ │ ├── PPCRecompiler.cpp │ │ │ │ ├── PPCRecompiler.h │ │ │ │ ├── PPCRecompilerIml.h │ │ │ │ ├── PPCRecompilerImlGen.cpp │ │ │ │ ├── PPCRecompilerImlGenFPU.cpp │ │ │ │ └── PPCRecompilerIntermediate.cpp │ │ ├── Latte │ │ │ ├── Common │ │ │ │ ├── RegisterSerializer.cpp │ │ │ │ ├── RegisterSerializer.h │ │ │ │ ├── ShaderSerializer.cpp │ │ │ │ └── ShaderSerializer.h │ │ │ ├── Core │ │ │ │ ├── FetchShader.cpp │ │ │ │ ├── FetchShader.h │ │ │ │ ├── Latte.h │ │ │ │ ├── LatteAsyncCommands.cpp │ │ │ │ ├── LatteAsyncCommands.h │ │ │ │ ├── LatteBufferCache.cpp │ │ │ │ ├── LatteBufferCache.h │ │ │ │ ├── LatteBufferData.cpp │ │ │ │ ├── LatteCachedFBO.h │ │ │ │ ├── LatteCommandProcessor.cpp │ │ │ │ ├── LatteConst.h │ │ │ │ ├── LatteDefaultShaders.cpp │ │ │ │ ├── LatteDefaultShaders.h │ │ │ │ ├── LatteDraw.h │ │ │ │ ├── LatteGSCopyShaderParser.cpp │ │ │ │ ├── LatteIndices.cpp │ │ │ │ ├── LatteIndices.h │ │ │ │ ├── LatteOverlay.cpp │ │ │ │ ├── LatteOverlay.h │ │ │ │ ├── LattePM4.h │ │ │ │ ├── LattePerformanceMonitor.cpp │ │ │ │ ├── LattePerformanceMonitor.h │ │ │ │ ├── LatteQuery.cpp │ │ │ │ ├── LatteQueryObject.h │ │ │ │ ├── LatteRenderTarget.cpp │ │ │ │ ├── LatteRingBuffer.cpp │ │ │ │ ├── LatteRingBuffer.h │ │ │ │ ├── LatteShader.cpp │ │ │ │ ├── LatteShader.h │ │ │ │ ├── LatteShaderAssembly.h │ │ │ │ ├── LatteShaderCache.cpp │ │ │ │ ├── LatteShaderCache.h │ │ │ │ ├── LatteShaderGL.cpp │ │ │ │ ├── LatteSoftware.cpp │ │ │ │ ├── LatteSoftware.h │ │ │ │ ├── LatteStreamoutGPU.cpp │ │ │ │ ├── LatteSurfaceCopy.cpp │ │ │ │ ├── LatteTexture.cpp │ │ │ │ ├── LatteTexture.h │ │ │ │ ├── LatteTextureCache.cpp │ │ │ │ ├── LatteTextureLegacy.cpp │ │ │ │ ├── LatteTextureLoader.cpp │ │ │ │ ├── LatteTextureLoader.h │ │ │ │ ├── LatteTextureReadback.cpp │ │ │ │ ├── LatteTextureReadbackInfo.h │ │ │ │ ├── LatteTextureView.cpp │ │ │ │ ├── LatteTextureView.h │ │ │ │ ├── LatteThread.cpp │ │ │ │ ├── LatteTiming.cpp │ │ │ │ └── LatteTiming.h │ │ │ ├── ISA │ │ │ │ ├── LatteInstructions.h │ │ │ │ ├── LatteReg.h │ │ │ │ └── RegDefines.h │ │ │ ├── LatteAddrLib │ │ │ │ ├── AddrLibFastDecode.h │ │ │ │ ├── LatteAddrLib.cpp │ │ │ │ ├── LatteAddrLib.h │ │ │ │ └── LatteAddrLib_Coord.cpp │ │ │ ├── LegacyShaderDecompiler │ │ │ │ ├── LatteDecompiler.cpp │ │ │ │ ├── LatteDecompiler.h │ │ │ │ ├── LatteDecompilerAnalyzer.cpp │ │ │ │ ├── LatteDecompilerEmitGLSL.cpp │ │ │ │ ├── LatteDecompilerEmitGLSLAttrDecoder.cpp │ │ │ │ ├── LatteDecompilerEmitGLSLHeader.hpp │ │ │ │ ├── LatteDecompilerInstructions.h │ │ │ │ ├── LatteDecompilerInternal.h │ │ │ │ └── LatteDecompilerRegisterDataTypeTracker.cpp │ │ │ ├── Renderer │ │ │ │ ├── OpenGL │ │ │ │ │ ├── CachedFBOGL.h │ │ │ │ │ ├── LatteTextureGL.cpp │ │ │ │ │ ├── LatteTextureGL.h │ │ │ │ │ ├── LatteTextureViewGL.cpp │ │ │ │ │ ├── LatteTextureViewGL.h │ │ │ │ │ ├── OpenGLQuery.cpp │ │ │ │ │ ├── OpenGLRenderer.cpp │ │ │ │ │ ├── OpenGLRenderer.h │ │ │ │ │ ├── OpenGLRendererCore.cpp │ │ │ │ │ ├── OpenGLRendererStreamout.cpp │ │ │ │ │ ├── OpenGLRendererUniformData.cpp │ │ │ │ │ ├── OpenGLSurfaceCopy.cpp │ │ │ │ │ ├── OpenGLTextureReadback.h │ │ │ │ │ ├── RendererShaderGL.cpp │ │ │ │ │ ├── RendererShaderGL.h │ │ │ │ │ └── TextureReadbackGL.cpp │ │ │ │ ├── Renderer.cpp │ │ │ │ ├── Renderer.h │ │ │ │ ├── RendererOuputShader.cpp │ │ │ │ ├── RendererOuputShader.h │ │ │ │ ├── RendererShader.cpp │ │ │ │ ├── RendererShader.h │ │ │ │ └── Vulkan │ │ │ │ │ ├── CachedFBOVk.cpp │ │ │ │ │ ├── CachedFBOVk.h │ │ │ │ │ ├── CocoaSurface.h │ │ │ │ │ ├── CocoaSurface.mm │ │ │ │ │ ├── LatteTextureViewVk.cpp │ │ │ │ │ ├── LatteTextureViewVk.h │ │ │ │ │ ├── LatteTextureVk.cpp │ │ │ │ │ ├── LatteTextureVk.h │ │ │ │ │ ├── RendererShaderVk.cpp │ │ │ │ │ ├── RendererShaderVk.h │ │ │ │ │ ├── SwapchainInfoVk.cpp │ │ │ │ │ ├── SwapchainInfoVk.h │ │ │ │ │ ├── TextureReadbackVk.cpp │ │ │ │ │ ├── VKRBase.h │ │ │ │ │ ├── VKRMemoryManager.cpp │ │ │ │ │ ├── VKRMemoryManager.h │ │ │ │ │ ├── VKRPipelineInfo.cpp │ │ │ │ │ ├── VsyncDriver.cpp │ │ │ │ │ ├── VsyncDriver.h │ │ │ │ │ ├── VulkanAPI.cpp │ │ │ │ │ ├── VulkanAPI.h │ │ │ │ │ ├── VulkanPipelineCompiler.cpp │ │ │ │ │ ├── VulkanPipelineCompiler.h │ │ │ │ │ ├── VulkanPipelineStableCache.cpp │ │ │ │ │ ├── VulkanPipelineStableCache.h │ │ │ │ │ ├── VulkanQuery.cpp │ │ │ │ │ ├── VulkanRenderer.cpp │ │ │ │ │ ├── VulkanRenderer.h │ │ │ │ │ ├── VulkanRendererCore.cpp │ │ │ │ │ ├── VulkanSurfaceCopy.cpp │ │ │ │ │ └── VulkanTextureReadback.h │ │ │ ├── ShaderInfo │ │ │ │ ├── ShaderDescription.cpp │ │ │ │ ├── ShaderInfo.h │ │ │ │ └── ShaderInstanceInfo.cpp │ │ │ └── Transcompiler │ │ │ │ ├── LatteTC.cpp │ │ │ │ ├── LatteTC.h │ │ │ │ └── LatteTCGenIR.cpp │ │ ├── MMU │ │ │ ├── MMU.cpp │ │ │ └── MMU.h │ │ ├── SI │ │ │ ├── SI.cpp │ │ │ └── si.h │ │ └── VI │ │ │ └── VI.cpp │ ├── IOSU │ │ ├── ODM │ │ │ ├── iosu_odm.cpp │ │ │ └── iosu_odm.h │ │ ├── PDM │ │ │ ├── iosu_pdm.cpp │ │ │ └── iosu_pdm.h │ │ ├── ccr_nfc │ │ │ ├── iosu_ccr_nfc.cpp │ │ │ └── iosu_ccr_nfc.h │ │ ├── fsa │ │ │ ├── fsa_types.h │ │ │ ├── iosu_fsa.cpp │ │ │ └── iosu_fsa.h │ │ ├── iosu_ipc_common.h │ │ ├── iosu_types_common.h │ │ ├── kernel │ │ │ ├── iosu_kernel.cpp │ │ │ └── iosu_kernel.h │ │ ├── legacy │ │ │ ├── iosu_acp.cpp │ │ │ ├── iosu_acp.h │ │ │ ├── iosu_act.cpp │ │ │ ├── iosu_act.h │ │ │ ├── iosu_boss.cpp │ │ │ ├── iosu_boss.h │ │ │ ├── iosu_crypto.cpp │ │ │ ├── iosu_crypto.h │ │ │ ├── iosu_fpd.cpp │ │ │ ├── iosu_fpd.h │ │ │ ├── iosu_ioctl.cpp │ │ │ ├── iosu_ioctl.h │ │ │ ├── iosu_mcp.cpp │ │ │ ├── iosu_mcp.h │ │ │ ├── iosu_nim.cpp │ │ │ └── iosu_nim.h │ │ └── nn │ │ │ ├── iosu_nn_service.cpp │ │ │ └── iosu_nn_service.h │ ├── OS │ │ ├── RPL │ │ │ ├── elf.cpp │ │ │ ├── rpl.cpp │ │ │ ├── rpl.h │ │ │ ├── rpl_debug_symbols.cpp │ │ │ ├── rpl_debug_symbols.h │ │ │ ├── rpl_structs.h │ │ │ ├── rpl_symbol_storage.cpp │ │ │ └── rpl_symbol_storage.h │ │ ├── common │ │ │ ├── OSCommon.cpp │ │ │ ├── OSCommon.h │ │ │ ├── OSUtil.h │ │ │ └── PPCConcurrentQueue.h │ │ └── libs │ │ │ ├── TCL │ │ │ ├── TCL.cpp │ │ │ └── TCL.h │ │ │ ├── avm │ │ │ ├── avm.cpp │ │ │ └── avm.h │ │ │ ├── camera │ │ │ ├── camera.cpp │ │ │ └── camera.h │ │ │ ├── coreinit │ │ │ ├── coreinit.cpp │ │ │ ├── coreinit.h │ │ │ ├── coreinit_Alarm.cpp │ │ │ ├── coreinit_Alarm.h │ │ │ ├── coreinit_Atomic.cpp │ │ │ ├── coreinit_Atomic.h │ │ │ ├── coreinit_BSP.cpp │ │ │ ├── coreinit_BSP.h │ │ │ ├── coreinit_Callbacks.cpp │ │ │ ├── coreinit_CodeGen.cpp │ │ │ ├── coreinit_CodeGen.h │ │ │ ├── coreinit_Coroutine.cpp │ │ │ ├── coreinit_Coroutine.h │ │ │ ├── coreinit_DynLoad.cpp │ │ │ ├── coreinit_DynLoad.h │ │ │ ├── coreinit_FG.cpp │ │ │ ├── coreinit_FG.h │ │ │ ├── coreinit_FS.cpp │ │ │ ├── coreinit_FS.h │ │ │ ├── coreinit_GHS.cpp │ │ │ ├── coreinit_GHS.h │ │ │ ├── coreinit_HWInterface.cpp │ │ │ ├── coreinit_HWInterface.h │ │ │ ├── coreinit_IM.cpp │ │ │ ├── coreinit_IM.h │ │ │ ├── coreinit_IOS.cpp │ │ │ ├── coreinit_IOS.h │ │ │ ├── coreinit_IPC.cpp │ │ │ ├── coreinit_IPC.h │ │ │ ├── coreinit_IPCBuf.cpp │ │ │ ├── coreinit_IPCBuf.h │ │ │ ├── coreinit_Init.cpp │ │ │ ├── coreinit_LockedCache.cpp │ │ │ ├── coreinit_LockedCache.h │ │ │ ├── coreinit_MCP.cpp │ │ │ ├── coreinit_MCP.h │ │ │ ├── coreinit_MEM.cpp │ │ │ ├── coreinit_MEM.h │ │ │ ├── coreinit_MEM_BlockHeap.cpp │ │ │ ├── coreinit_MEM_BlockHeap.h │ │ │ ├── coreinit_MEM_ExpHeap.cpp │ │ │ ├── coreinit_MEM_ExpHeap.h │ │ │ ├── coreinit_MEM_FrmHeap.cpp │ │ │ ├── coreinit_MEM_FrmHeap.h │ │ │ ├── coreinit_MEM_UnitHeap.cpp │ │ │ ├── coreinit_MEM_UnitHeap.h │ │ │ ├── coreinit_MPQueue.cpp │ │ │ ├── coreinit_MPQueue.h │ │ │ ├── coreinit_Memory.cpp │ │ │ ├── coreinit_Memory.h │ │ │ ├── coreinit_MemoryMapping.cpp │ │ │ ├── coreinit_MemoryMapping.h │ │ │ ├── coreinit_MessageQueue.cpp │ │ │ ├── coreinit_MessageQueue.h │ │ │ ├── coreinit_Misc.cpp │ │ │ ├── coreinit_Misc.h │ │ │ ├── coreinit_OSScreen.cpp │ │ │ ├── coreinit_OSScreen.h │ │ │ ├── coreinit_OSScreen_font.h │ │ │ ├── coreinit_OverlayArena.cpp │ │ │ ├── coreinit_OverlayArena.h │ │ │ ├── coreinit_Scheduler.cpp │ │ │ ├── coreinit_Scheduler.h │ │ │ ├── coreinit_Spinlock.cpp │ │ │ ├── coreinit_Spinlock.h │ │ │ ├── coreinit_Synchronization.cpp │ │ │ ├── coreinit_SysHeap.cpp │ │ │ ├── coreinit_SysHeap.h │ │ │ ├── coreinit_SystemInfo.cpp │ │ │ ├── coreinit_SystemInfo.h │ │ │ ├── coreinit_Thread.cpp │ │ │ ├── coreinit_Thread.h │ │ │ ├── coreinit_ThreadQueue.cpp │ │ │ ├── coreinit_Time.cpp │ │ │ └── coreinit_Time.h │ │ │ ├── dmae │ │ │ ├── dmae.cpp │ │ │ └── dmae.h │ │ │ ├── drmapp │ │ │ ├── drmapp.cpp │ │ │ └── drmapp.h │ │ │ ├── erreula │ │ │ ├── erreula.cpp │ │ │ └── erreula.h │ │ │ ├── gx2 │ │ │ ├── GX2.cpp │ │ │ ├── GX2.h │ │ │ ├── GX2_AddrTest.cpp │ │ │ ├── GX2_Blit.cpp │ │ │ ├── GX2_Blit.h │ │ │ ├── GX2_Command.cpp │ │ │ ├── GX2_Command.h │ │ │ ├── GX2_ContextState.cpp │ │ │ ├── GX2_Draw.cpp │ │ │ ├── GX2_Draw.h │ │ │ ├── GX2_Event.cpp │ │ │ ├── GX2_Event.h │ │ │ ├── GX2_Memory.cpp │ │ │ ├── GX2_Memory.h │ │ │ ├── GX2_Misc.cpp │ │ │ ├── GX2_Misc.h │ │ │ ├── GX2_Query.cpp │ │ │ ├── GX2_Query.h │ │ │ ├── GX2_RenderTarget.cpp │ │ │ ├── GX2_Resource.cpp │ │ │ ├── GX2_Resource.h │ │ │ ├── GX2_Shader.cpp │ │ │ ├── GX2_Shader.h │ │ │ ├── GX2_State.cpp │ │ │ ├── GX2_State.h │ │ │ ├── GX2_Streamout.cpp │ │ │ ├── GX2_Streamout.h │ │ │ ├── GX2_Surface.cpp │ │ │ ├── GX2_Surface.h │ │ │ ├── GX2_Surface_Copy.cpp │ │ │ ├── GX2_Surface_Copy.h │ │ │ ├── GX2_Texture.cpp │ │ │ ├── GX2_Texture.h │ │ │ ├── GX2_TilingAperture.cpp │ │ │ └── GX2_shader_legacy.cpp │ │ │ ├── h264_avc │ │ │ ├── H264Dec.cpp │ │ │ ├── H264DecBackendAVC.cpp │ │ │ ├── H264DecInternal.h │ │ │ ├── h264dec.h │ │ │ └── parser │ │ │ │ ├── H264Parser.cpp │ │ │ │ └── H264Parser.h │ │ │ ├── mic │ │ │ ├── mic.cpp │ │ │ └── mic.h │ │ │ ├── nfc │ │ │ ├── TLV.cpp │ │ │ ├── TLV.h │ │ │ ├── TagV0.cpp │ │ │ ├── TagV0.h │ │ │ ├── ndef.cpp │ │ │ ├── ndef.h │ │ │ ├── nfc.cpp │ │ │ ├── nfc.h │ │ │ ├── stream.cpp │ │ │ └── stream.h │ │ │ ├── nlibcurl │ │ │ ├── nlibcurl.cpp │ │ │ ├── nlibcurl.h │ │ │ └── nlibcurlDebug.hpp │ │ │ ├── nlibnss │ │ │ ├── nlibnss.cpp │ │ │ └── nlibnss.h │ │ │ ├── nn_ac │ │ │ ├── nn_ac.cpp │ │ │ └── nn_ac.h │ │ │ ├── nn_acp │ │ │ ├── nn_acp.cpp │ │ │ └── nn_acp.h │ │ │ ├── nn_act │ │ │ ├── nn_act.cpp │ │ │ └── nn_act.h │ │ │ ├── nn_aoc │ │ │ ├── nn_aoc.cpp │ │ │ └── nn_aoc.h │ │ │ ├── nn_boss │ │ │ ├── nn_boss.cpp │ │ │ └── nn_boss.h │ │ │ ├── nn_ccr │ │ │ ├── nn_ccr.cpp │ │ │ └── nn_ccr.h │ │ │ ├── nn_cmpt │ │ │ ├── nn_cmpt.cpp │ │ │ └── nn_cmpt.h │ │ │ ├── nn_common.h │ │ │ ├── nn_ec │ │ │ ├── nn_ec.cpp │ │ │ └── nn_ec.h │ │ │ ├── nn_fp │ │ │ ├── nn_fp.cpp │ │ │ └── nn_fp.h │ │ │ ├── nn_idbe │ │ │ ├── nn_idbe.cpp │ │ │ └── nn_idbe.h │ │ │ ├── nn_ndm │ │ │ ├── nn_ndm.cpp │ │ │ └── nn_ndm.h │ │ │ ├── nn_nfp │ │ │ ├── AmiiboCrypto.h │ │ │ ├── nn_nfp.cpp │ │ │ └── nn_nfp.h │ │ │ ├── nn_nim │ │ │ ├── nn_nim.cpp │ │ │ └── nn_nim.h │ │ │ ├── nn_olv │ │ │ ├── nn_olv.cpp │ │ │ ├── nn_olv.h │ │ │ ├── nn_olv_Common.cpp │ │ │ ├── nn_olv_Common.h │ │ │ ├── nn_olv_DownloadCommunityTypes.cpp │ │ │ ├── nn_olv_DownloadCommunityTypes.h │ │ │ ├── nn_olv_InitializeTypes.cpp │ │ │ ├── nn_olv_InitializeTypes.h │ │ │ ├── nn_olv_OfflineDB.cpp │ │ │ ├── nn_olv_OfflineDB.h │ │ │ ├── nn_olv_PostTypes.cpp │ │ │ ├── nn_olv_PostTypes.h │ │ │ ├── nn_olv_UploadCommunityTypes.cpp │ │ │ ├── nn_olv_UploadCommunityTypes.h │ │ │ ├── nn_olv_UploadFavoriteTypes.cpp │ │ │ └── nn_olv_UploadFavoriteTypes.h │ │ │ ├── nn_pdm │ │ │ ├── nn_pdm.cpp │ │ │ └── nn_pdm.h │ │ │ ├── nn_save │ │ │ ├── nn_save.cpp │ │ │ └── nn_save.h │ │ │ ├── nn_sl │ │ │ ├── nn_sl.cpp │ │ │ └── nn_sl.h │ │ │ ├── nn_spm │ │ │ ├── nn_spm.cpp │ │ │ └── nn_spm.h │ │ │ ├── nn_temp │ │ │ ├── nn_temp.cpp │ │ │ └── nn_temp.h │ │ │ ├── nn_uds │ │ │ ├── nn_uds.cpp │ │ │ └── nn_uds.h │ │ │ ├── nsyshid │ │ │ ├── AttachDefaultBackends.cpp │ │ │ ├── Backend.h │ │ │ ├── BackendEmulated.cpp │ │ │ ├── BackendEmulated.h │ │ │ ├── BackendLibusb.cpp │ │ │ ├── BackendLibusb.h │ │ │ ├── Dimensions.cpp │ │ │ ├── Dimensions.h │ │ │ ├── Infinity.cpp │ │ │ ├── Infinity.h │ │ │ ├── Skylander.cpp │ │ │ ├── Skylander.h │ │ │ ├── SkylanderXbox360.cpp │ │ │ ├── SkylanderXbox360.h │ │ │ ├── Whitelist.cpp │ │ │ ├── Whitelist.h │ │ │ ├── g721 │ │ │ │ ├── g721.cpp │ │ │ │ └── g721.h │ │ │ ├── nsyshid.cpp │ │ │ └── nsyshid.h │ │ │ ├── nsyskbd │ │ │ ├── nsyskbd.cpp │ │ │ └── nsyskbd.h │ │ │ ├── nsysnet │ │ │ ├── nsysnet.cpp │ │ │ └── nsysnet.h │ │ │ ├── ntag │ │ │ ├── ntag.cpp │ │ │ └── ntag.h │ │ │ ├── padscore │ │ │ ├── padscore.cpp │ │ │ └── padscore.h │ │ │ ├── proc_ui │ │ │ ├── proc_ui.cpp │ │ │ └── proc_ui.h │ │ │ ├── snd_core │ │ │ ├── ax.h │ │ │ ├── ax_aux.cpp │ │ │ ├── ax_exports.cpp │ │ │ ├── ax_internal.h │ │ │ ├── ax_ist.cpp │ │ │ ├── ax_mix.cpp │ │ │ ├── ax_multivoice.cpp │ │ │ ├── ax_out.cpp │ │ │ └── ax_voice.cpp │ │ │ ├── snd_user │ │ │ ├── snd_user.cpp │ │ │ └── snd_user.h │ │ │ ├── swkbd │ │ │ ├── swkbd.cpp │ │ │ └── swkbd.h │ │ │ ├── sysapp │ │ │ ├── sysapp.cpp │ │ │ └── sysapp.h │ │ │ ├── vpad │ │ │ ├── vpad.cpp │ │ │ └── vpad.h │ │ │ └── zlib125 │ │ │ ├── zlib125.cpp │ │ │ └── zlib125.h │ └── TitleList │ │ ├── AppType.h │ │ ├── GameInfo.h │ │ ├── ParsedMetaXml.h │ │ ├── SaveInfo.cpp │ │ ├── SaveInfo.h │ │ ├── SaveList.cpp │ │ ├── SaveList.h │ │ ├── TitleId.h │ │ ├── TitleInfo.cpp │ │ ├── TitleInfo.h │ │ ├── TitleList.cpp │ │ └── TitleList.h ├── Cemu │ ├── CMakeLists.txt │ ├── DiscordPresence │ │ ├── DiscordPresence.cpp │ │ └── DiscordPresence.h │ ├── ExpressionParser │ │ ├── ExpressionParser.cpp │ │ └── ExpressionParser.h │ ├── FileCache │ │ ├── FileCache.cpp │ │ └── FileCache.h │ ├── Logging │ │ ├── CemuDebugLogging.h │ │ ├── CemuLogging.cpp │ │ └── CemuLogging.h │ ├── PPCAssembler │ │ ├── ppcAssembler.cpp │ │ └── ppcAssembler.h │ ├── Tools │ │ └── DownloadManager │ │ │ ├── DownloadManager.cpp │ │ │ └── DownloadManager.h │ ├── napi │ │ ├── napi.h │ │ ├── napi_act.cpp │ │ ├── napi_ec.cpp │ │ ├── napi_helper.cpp │ │ ├── napi_helper.h │ │ ├── napi_idbe.cpp │ │ └── napi_version.cpp │ ├── ncrypto │ │ ├── ncrypto.cpp │ │ └── ncrypto.h │ └── nex │ │ ├── nex.cpp │ │ ├── nex.h │ │ ├── nexFriends.cpp │ │ ├── nexFriends.h │ │ ├── nexThread.cpp │ │ ├── nexThread.h │ │ ├── nexTypes.h │ │ ├── prudp.cpp │ │ └── prudp.h ├── Common │ ├── CMakeLists.txt │ ├── CafeString.h │ ├── ExceptionHandler │ │ ├── ELFSymbolTable.cpp │ │ ├── ELFSymbolTable.h │ │ ├── ExceptionHandler.cpp │ │ ├── ExceptionHandler.h │ │ ├── ExceptionHandler_posix.cpp │ │ └── ExceptionHandler_win32.cpp │ ├── FileStream.h │ ├── GLInclude │ │ ├── GLInclude.h │ │ ├── egl.h │ │ ├── glFunctions.h │ │ ├── glext.h │ │ ├── glxext.h │ │ ├── khrplatform.h │ │ └── wglext.h │ ├── MemPtr.h │ ├── StackAllocator.h │ ├── SysAllocator.cpp │ ├── SysAllocator.h │ ├── betype.h │ ├── cpu_features.cpp │ ├── cpu_features.h │ ├── enumFlags.h │ ├── platform.h │ ├── precompiled.cpp │ ├── precompiled.h │ ├── socket.h │ ├── unix │ │ ├── FileStream_unix.cpp │ │ ├── FileStream_unix.h │ │ ├── date.h │ │ ├── fast_float.h │ │ ├── platform.cpp │ │ └── platform.h │ ├── version.h │ └── windows │ │ ├── FileStream_win32.cpp │ │ ├── FileStream_win32.h │ │ ├── platform.cpp │ │ └── platform.h ├── audio │ ├── CMakeLists.txt │ ├── CubebAPI.cpp │ ├── CubebAPI.h │ ├── CubebInputAPI.cpp │ ├── CubebInputAPI.h │ ├── DirectSoundAPI.cpp │ ├── DirectSoundAPI.h │ ├── IAudioAPI.cpp │ ├── IAudioAPI.h │ ├── IAudioInputAPI.cpp │ ├── IAudioInputAPI.h │ ├── XAudio27API.cpp │ ├── XAudio27API.h │ ├── XAudio2API.cpp │ ├── XAudio2API.h │ ├── audioDebuggerWindow.cpp │ ├── audioDebuggerWindow.h │ └── xaudio2_7 │ │ ├── audiodefs.h │ │ ├── comdecl.h │ │ ├── dxsdkver.h │ │ └── xma2defs.h ├── config │ ├── ActiveSettings.cpp │ ├── ActiveSettings.h │ ├── CMakeLists.txt │ ├── CemuConfig.cpp │ ├── CemuConfig.h │ ├── ConfigValue.h │ ├── LaunchSettings.cpp │ ├── LaunchSettings.h │ ├── NetworkSettings.cpp │ ├── NetworkSettings.h │ └── XMLConfig.h ├── gui │ ├── CMakeLists.txt │ ├── CemuApp.cpp │ ├── CemuApp.h │ ├── CemuUpdateWindow.cpp │ ├── CemuUpdateWindow.h │ ├── ChecksumTool.cpp │ ├── ChecksumTool.h │ ├── DownloadGraphicPacksWindow.cpp │ ├── DownloadGraphicPacksWindow.h │ ├── EmulatedUSBDevices │ │ ├── EmulatedUSBDeviceFrame.cpp │ │ └── EmulatedUSBDeviceFrame.h │ ├── GameProfileWindow.cpp │ ├── GameProfileWindow.h │ ├── GameUpdateWindow.cpp │ ├── GameUpdateWindow.h │ ├── GeneralSettings2.cpp │ ├── GeneralSettings2.h │ ├── GettingStartedDialog.cpp │ ├── GettingStartedDialog.h │ ├── GraphicPacksWindow2.cpp │ ├── GraphicPacksWindow2.h │ ├── LoggingWindow.cpp │ ├── LoggingWindow.h │ ├── MainWindow.cpp │ ├── MainWindow.h │ ├── MemorySearcherTool.cpp │ ├── MemorySearcherTool.h │ ├── PadViewFrame.cpp │ ├── PadViewFrame.h │ ├── TitleManager.cpp │ ├── TitleManager.h │ ├── canvas │ │ ├── IRenderCanvas.h │ │ ├── OpenGLCanvas.cpp │ │ ├── OpenGLCanvas.h │ │ ├── VulkanCanvas.cpp │ │ └── VulkanCanvas.h │ ├── components │ │ ├── TextList.cpp │ │ ├── TextList.h │ │ ├── wxDownloadManagerList.cpp │ │ ├── wxDownloadManagerList.h │ │ ├── wxGameList.cpp │ │ ├── wxGameList.h │ │ ├── wxInputDraw.cpp │ │ ├── wxInputDraw.h │ │ ├── wxLogCtrl.cpp │ │ ├── wxLogCtrl.h │ │ ├── wxProgressDialogManager.h │ │ ├── wxTitleManagerList.cpp │ │ └── wxTitleManagerList.h │ ├── debugger │ │ ├── BreakpointWindow.cpp │ │ ├── BreakpointWindow.h │ │ ├── DebuggerWindow2.cpp │ │ ├── DebuggerWindow2.h │ │ ├── DisasmCtrl.cpp │ │ ├── DisasmCtrl.h │ │ ├── DumpCtrl.cpp │ │ ├── DumpCtrl.h │ │ ├── DumpWindow.cpp │ │ ├── DumpWindow.h │ │ ├── ModuleWindow.cpp │ │ ├── ModuleWindow.h │ │ ├── RegisterCtrl.cpp │ │ ├── RegisterCtrl.h │ │ ├── RegisterWindow.cpp │ │ ├── RegisterWindow.h │ │ ├── SymbolCtrl.cpp │ │ ├── SymbolCtrl.h │ │ ├── SymbolWindow.cpp │ │ └── SymbolWindow.h │ ├── dialogs │ │ ├── CreateAccount │ │ │ ├── wxCreateAccountDialog.cpp │ │ │ └── wxCreateAccountDialog.h │ │ └── SaveImport │ │ │ ├── SaveImportWindow.cpp │ │ │ ├── SaveImportWindow.h │ │ │ ├── SaveTransfer.cpp │ │ │ └── SaveTransfer.h │ ├── guiWrapper.cpp │ ├── guiWrapper.h │ ├── helpers │ │ ├── wxControlObject.h │ │ ├── wxCustomData.h │ │ ├── wxCustomEvents.cpp │ │ ├── wxCustomEvents.h │ │ ├── wxHelpers.cpp │ │ ├── wxHelpers.h │ │ ├── wxLogEvent.h │ │ ├── wxWayland.cpp │ │ └── wxWayland.h │ ├── input │ │ ├── InputAPIAddWindow.cpp │ │ ├── InputAPIAddWindow.h │ │ ├── InputSettings2.cpp │ │ ├── InputSettings2.h │ │ ├── PairingDialog.cpp │ │ ├── PairingDialog.h │ │ ├── panels │ │ │ ├── ClassicControllerInputPanel.cpp │ │ │ ├── ClassicControllerInputPanel.h │ │ │ ├── InputPanel.cpp │ │ │ ├── InputPanel.h │ │ │ ├── ProControllerInputPanel.cpp │ │ │ ├── ProControllerInputPanel.h │ │ │ ├── VPADInputPanel.cpp │ │ │ ├── VPADInputPanel.h │ │ │ ├── WiimoteInputPanel.cpp │ │ │ └── WiimoteInputPanel.h │ │ └── settings │ │ │ ├── DefaultControllerSettings.cpp │ │ │ ├── DefaultControllerSettings.h │ │ │ ├── WiimoteControllerSettings.cpp │ │ │ └── WiimoteControllerSettings.h │ ├── windows │ │ ├── PPCThreadsViewer │ │ │ ├── DebugPPCThreadsWindow.cpp │ │ │ └── DebugPPCThreadsWindow.h │ │ └── TextureRelationViewer │ │ │ ├── TextureRelationWindow.cpp │ │ │ └── TextureRelationWindow.h │ ├── wxHelper.h │ ├── wxcomponents │ │ ├── checked.xpm │ │ ├── checked2.xpm │ │ ├── checked_d.xpm │ │ ├── checked_dis.xpm │ │ ├── checked_ld.xpm │ │ ├── checked_mo.xpm │ │ ├── checkedlistctrl.cpp │ │ ├── checkedlistctrl.h │ │ ├── checktree.cpp │ │ ├── checktree.h │ │ ├── unchecked.xpm │ │ ├── unchecked2.xpm │ │ ├── unchecked_d.xpm │ │ ├── unchecked_dis.xpm │ │ ├── unchecked_ld.xpm │ │ └── unchecked_mo.xpm │ └── wxgui.h ├── imgui │ ├── CMakeLists.txt │ ├── imgui_extension.cpp │ ├── imgui_extension.h │ ├── imgui_impl_opengl3.cpp │ ├── imgui_impl_opengl3.h │ ├── imgui_impl_vulkan.cpp │ └── imgui_impl_vulkan.h ├── input │ ├── CMakeLists.txt │ ├── ControllerFactory.cpp │ ├── ControllerFactory.h │ ├── InputManager.cpp │ ├── InputManager.h │ ├── api │ │ ├── Controller.cpp │ │ ├── Controller.h │ │ ├── ControllerProvider.h │ │ ├── ControllerState.cpp │ │ ├── ControllerState.h │ │ ├── DSU │ │ │ ├── DSUController.cpp │ │ │ ├── DSUController.h │ │ │ ├── DSUControllerProvider.cpp │ │ │ ├── DSUControllerProvider.h │ │ │ ├── DSUMessages.cpp │ │ │ └── DSUMessages.h │ │ ├── DirectInput │ │ │ ├── DirectInputController.cpp │ │ │ ├── DirectInputController.h │ │ │ ├── DirectInputControllerProvider.cpp │ │ │ └── DirectInputControllerProvider.h │ │ ├── GameCube │ │ │ ├── GameCubeController.cpp │ │ │ ├── GameCubeController.h │ │ │ ├── GameCubeControllerProvider.cpp │ │ │ └── GameCubeControllerProvider.h │ │ ├── InputAPI.h │ │ ├── Keyboard │ │ │ ├── KeyboardController.cpp │ │ │ ├── KeyboardController.h │ │ │ ├── KeyboardControllerProvider.cpp │ │ │ └── KeyboardControllerProvider.h │ │ ├── SDL │ │ │ ├── SDLController.cpp │ │ │ ├── SDLController.h │ │ │ ├── SDLControllerProvider.cpp │ │ │ └── SDLControllerProvider.h │ │ ├── Wiimote │ │ │ ├── NativeWiimoteController.cpp │ │ │ ├── NativeWiimoteController.h │ │ │ ├── WiimoteControllerProvider.cpp │ │ │ ├── WiimoteControllerProvider.h │ │ │ ├── WiimoteDevice.h │ │ │ ├── WiimoteMessages.h │ │ │ ├── hidapi │ │ │ │ ├── HidapiWiimote.cpp │ │ │ │ └── HidapiWiimote.h │ │ │ └── l2cap │ │ │ │ ├── L2CapWiimote.cpp │ │ │ │ └── L2CapWiimote.h │ │ └── XInput │ │ │ ├── XInputController.cpp │ │ │ ├── XInputController.h │ │ │ ├── XInputControllerProvider.cpp │ │ │ └── XInputControllerProvider.h │ ├── emulated │ │ ├── ClassicController.cpp │ │ ├── ClassicController.h │ │ ├── EmulatedController.cpp │ │ ├── EmulatedController.h │ │ ├── ProController.cpp │ │ ├── ProController.h │ │ ├── VPADController.cpp │ │ ├── VPADController.h │ │ ├── WPADController.cpp │ │ ├── WPADController.h │ │ ├── WiimoteController.cpp │ │ └── WiimoteController.h │ └── motion │ │ ├── Mahony.h │ │ ├── MotionHandler.h │ │ └── MotionSample.h ├── main.cpp ├── mainLLE.cpp ├── resource │ ├── CMakeLists.txt │ ├── CafeDefaultFont.cpp │ ├── IconsFontAwesome5.h │ ├── MacOSXBundleInfo.plist.in │ ├── cemu.icns │ ├── cemu.rc │ ├── debugger │ │ ├── icons8-drop-down-50.png │ │ ├── icons8-full-moon-filled-50-red.png │ │ ├── icons8-full-moon-filled-50.png │ │ ├── icons8-pause-filled-50.png │ │ ├── icons8-play-filled-50.png │ │ ├── icons8-step-into-50.png │ │ ├── icons8-step-out-50.png │ │ └── icons8-step-over-50.png │ ├── embedded │ │ ├── DEBUGGER_BP.hpng │ │ ├── DEBUGGER_BP_RED.hpng │ │ ├── DEBUGGER_GOTO.hpng │ │ ├── DEBUGGER_PAUSE.hpng │ │ ├── DEBUGGER_PLAY.hpng │ │ ├── DEBUGGER_STEP_INTO.hpng │ │ ├── DEBUGGER_STEP_OUT.hpng │ │ ├── DEBUGGER_STEP_OVER.hpng │ │ ├── INPUT_CONNECTED.hpng │ │ ├── INPUT_DISCONNECTED.hpng │ │ ├── INPUT_LOW_BATTERY.hpng │ │ ├── M_WND_ICON128.xpm │ │ ├── PNG_HELP.hpng │ │ ├── PNG_REFRESH.hpng │ │ ├── X_BOX.xpm │ │ ├── X_GAME_PROFILE.xpm │ │ ├── X_SETTINGS.xpm │ │ ├── fontawesome.S │ │ ├── fontawesome_macos.S │ │ ├── icons8-checkmark-yes-32.hpng │ │ ├── icons8-error-32.hpng │ │ ├── resources.cpp │ │ └── resources.h │ ├── fontawesome-webfont.ttf │ ├── icons8-cardboard-box-filled-50.png │ ├── icons8-checkmark-yes-32.png │ ├── icons8-compose-filled-50.ico │ ├── icons8-error-32.png │ ├── icons8-help-24.png │ ├── icons8-refresh-32.png │ ├── icons8_automatic_26_xQK_icon.ico │ ├── icons8_cardboard_box_filled.ico │ ├── input │ │ ├── icons8-connected-50.png │ │ ├── icons8-disconnected-50.png │ │ ├── icons8-game-controller-24.ico │ │ ├── icons8-game-controller-24.png │ │ └── icons8-low-battery-30.png │ ├── logo_1.png │ ├── logo_icon.ico │ ├── logo_icon.png │ ├── logo_icon16.ico │ ├── logo_icon2.ico │ ├── orig1024.ico │ ├── output.ico │ ├── resource.h │ └── update.sh ├── tools │ └── ShaderCacheMerger.cpp └── util │ ├── CMakeLists.txt │ ├── ChunkedHeap │ └── ChunkedHeap.h │ ├── DXGIWrapper │ └── DXGIWrapper.h │ ├── EventService.h │ ├── Fiber │ ├── Fiber.h │ ├── FiberUnix.cpp │ └── FiberWin.cpp │ ├── ImageWriter │ ├── bmp.h │ └── tga.h │ ├── IniParser │ ├── IniParser.cpp │ └── IniParser.h │ ├── MemMapper │ ├── MemMapper.h │ ├── MemMapperUnix.cpp │ └── MemMapperWin.cpp │ ├── ScreenSaver │ └── ScreenSaver.h │ ├── SystemInfo │ ├── SystemInfo.cpp │ ├── SystemInfo.h │ ├── SystemInfoLinux.cpp │ ├── SystemInfoMac.cpp │ ├── SystemInfoStub.cpp │ ├── SystemInfoUnix.cpp │ └── SystemInfoWin.cpp │ ├── ThreadPool │ └── ThreadPool.h │ ├── VirtualHeap │ ├── VirtualHeap.cpp │ └── VirtualHeap.h │ ├── Zir │ ├── Core │ │ ├── IR.cpp │ │ ├── IR.h │ │ ├── ZirUtility.h │ │ ├── ZpIRBuilder.h │ │ ├── ZpIRDebug.h │ │ ├── ZpIRPasses.h │ │ └── ZpIRScheduler.h │ ├── EmitterGLSL │ │ ├── ZpIREmitGLSL.cpp │ │ └── ZpIREmitGLSL.h │ └── Passes │ │ ├── RegisterAllocatorForGLSL.cpp │ │ └── ZpIRRegisterAllocator.cpp │ ├── boost │ └── bluetooth.h │ ├── bootSound │ ├── BootSoundReader.cpp │ └── BootSoundReader.h │ ├── containers │ ├── IntervalBucketContainer.h │ ├── LookupTableL3.h │ ├── RangeStore.h │ ├── SmallBitset.h │ ├── flat_hash_map.hpp │ └── robin_hood.h │ ├── crypto │ ├── aes128.cpp │ ├── aes128.h │ ├── crc32.cpp │ ├── crc32.h │ ├── md5.cpp │ └── md5.h │ ├── helpers │ ├── ClassWrapper.h │ ├── ConcurrentQueue.h │ ├── MapAdaptor.h │ ├── MemoryPool.h │ ├── Semaphore.h │ ├── Serializer.cpp │ ├── Serializer.h │ ├── Singleton.h │ ├── StringBuf.h │ ├── StringHelpers.h │ ├── StringParser.h │ ├── SystemException.h │ ├── TempState.h │ ├── enum_array.hpp │ ├── fixedSizeList.h │ ├── fspinlock.h │ ├── helpers.cpp │ ├── helpers.h │ └── ringbuffer.h │ ├── highresolutiontimer │ ├── HighResolutionTimer.cpp │ └── HighResolutionTimer.h │ ├── libusbWrapper │ ├── libusbWrapper.cpp │ └── libusbWrapper.h │ ├── math │ ├── glm.h │ ├── quaternion.h │ ├── vector2.h │ └── vector3.h │ └── tinyxml2 │ ├── tinyxml2.cpp │ └── tinyxml2.h └── vcpkg.json /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Cemu Discord 4 | url: https://discord.com/invite/5psYsup 5 | about: If you need technical support with Cemu or have other questions the best place to ask is on the official Cemu Discord linked here 6 | -------------------------------------------------------------------------------- /.github/workflows/build_check.yml: -------------------------------------------------------------------------------- 1 | name: Build check 2 | on: 3 | pull_request: 4 | paths-ignore: 5 | - "*.md" 6 | types: 7 | - opened 8 | - synchronize 9 | - reopened 10 | push: 11 | paths-ignore: 12 | - "*.md" 13 | branches: 14 | - main 15 | 16 | jobs: 17 | build: 18 | uses: ./.github/workflows/build.yml 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.slo 2 | *.lo 3 | *.o 4 | *.obj 5 | *.gch 6 | *.pch 7 | *.so 8 | *.dylib 9 | *.dll 10 | *.a 11 | *.lib 12 | *.exe 13 | *.out 14 | *.app 15 | .vs 16 | .vscode 17 | .idea/ 18 | 19 | build/ 20 | cmake-build-*/ 21 | out/ 22 | .cache/ 23 | bin/Cemu_* 24 | bin/Cemu_*.exe 25 | 26 | # Cemu bin files 27 | bin/otp.bin 28 | bin/seeprom.bin 29 | bin/log.txt 30 | bin/Cemu_*.pdb 31 | bin/Cemu_*.ilk 32 | bin/Cemu.exe.backup 33 | bin/mlc01/* 34 | bin/settings.xml 35 | bin/network_services.xml 36 | bin/title_list_cache.xml 37 | bin/debugger/* 38 | bin/sdcard/* 39 | bin/screenshots/* 40 | bin/dump/* 41 | bin/cafeLibs/* 42 | bin/portable/* 43 | bin/keys.txt 44 | 45 | !bin/shaderCache/info.txt 46 | bin/shaderCache/* 47 | 48 | bin/controllerProfiles/* 49 | 50 | !bin/gameProfiles/default/* 51 | bin/gameProfiles/* 52 | 53 | bin/graphicPacks/* 54 | 55 | # Ignore Finder view option files created by OS X 56 | .DS_Store -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dependencies/ZArchive"] 2 | path = dependencies/ZArchive 3 | url = https://github.com/Exzap/ZArchive 4 | shallow = true 5 | [submodule "dependencies/cubeb"] 6 | path = dependencies/cubeb 7 | url = https://github.com/mozilla/cubeb 8 | shallow = true 9 | [submodule "dependencies/vcpkg"] 10 | path = dependencies/vcpkg 11 | url = https://github.com/microsoft/vcpkg 12 | shallow = false 13 | [submodule "dependencies/Vulkan-Headers"] 14 | path = dependencies/Vulkan-Headers 15 | url = https://github.com/KhronosGroup/Vulkan-Headers 16 | shallow = true 17 | [submodule "dependencies/imgui"] 18 | path = dependencies/imgui 19 | url = https://github.com/ocornut/imgui 20 | shallow = true 21 | [submodule "dependencies/xbyak_aarch64"] 22 | path = dependencies/xbyak_aarch64 23 | url = https://github.com/fujitsu/xbyak_aarch64 24 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010101a00.ini: -------------------------------------------------------------------------------- 1 | # LEGO City Undercover (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010101b00.ini: -------------------------------------------------------------------------------- 1 | # LEGO City Undercover (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010104d00.ini: -------------------------------------------------------------------------------- 1 | # Monster Hunter 3(tri-)GHD Ver. (JPN) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010106100.ini: -------------------------------------------------------------------------------- 1 | # Super Mario 3D World (JPN) 2 | 3 | [Graphics] 4 | accurateShaderMul = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010EB00.ini: -------------------------------------------------------------------------------- 1 | # Mario Kart 8 (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010F900.ini: -------------------------------------------------------------------------------- 1 | # Scribblenauts Unlimited (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010ac00.ini: -------------------------------------------------------------------------------- 1 | # Ben 10 Omniverse (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010ad00.ini: -------------------------------------------------------------------------------- 1 | # Darksiders II (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010b100.ini: -------------------------------------------------------------------------------- 1 | # Rayman Legends (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010b200.ini: -------------------------------------------------------------------------------- 1 | # Scribblenauts Unlimited (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010dc00.ini: -------------------------------------------------------------------------------- 1 | # Mass Effect 3 Special Edition (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010dd00.ini: -------------------------------------------------------------------------------- 1 | # ZombiU (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010e600.ini: -------------------------------------------------------------------------------- 1 | # 007 Legends (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010e700.ini: -------------------------------------------------------------------------------- 1 | # Cabela's Dangerous Hunts 2013 (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010ec00.ini: -------------------------------------------------------------------------------- 1 | # Mario Kart 8 (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010ed00.ini: -------------------------------------------------------------------------------- 1 | # Mario Kart 8 (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010ef00.ini: -------------------------------------------------------------------------------- 1 | # ZombiU (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010f100.ini: -------------------------------------------------------------------------------- 1 | # Rise of the Guardians: The Video Game (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010f200.ini: -------------------------------------------------------------------------------- 1 | # Rise of the Guardians: The Video Game (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001010f500.ini: -------------------------------------------------------------------------------- 1 | # Mass Effect 3 Special Edition (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010110100.ini: -------------------------------------------------------------------------------- 1 | # Nano Assault Neo (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010110600.ini: -------------------------------------------------------------------------------- 1 | # Nano Assault Neo (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010110700.ini: -------------------------------------------------------------------------------- 1 | # 007 Legends (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010110E00.ini: -------------------------------------------------------------------------------- 1 | # Super Smash Bros for Wii U (JPN) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 8 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010110f00.ini: -------------------------------------------------------------------------------- 1 | # Darksiders II (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010111000.ini: -------------------------------------------------------------------------------- 1 | # Ben 10 Omniverse (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010111400.ini: -------------------------------------------------------------------------------- 1 | # Rayman Legends (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010111600.ini: -------------------------------------------------------------------------------- 1 | # Fast And Furious Showdown (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010112000.ini: -------------------------------------------------------------------------------- 1 | # The Croods: Prehistoric Party! (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010112300.ini: -------------------------------------------------------------------------------- 1 | # ZombiU (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010113000.ini: -------------------------------------------------------------------------------- 1 | # Mass Effect 3 Special Edition (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010113300.ini: -------------------------------------------------------------------------------- 1 | # The Smurfs 2 (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010113d00.ini: -------------------------------------------------------------------------------- 1 | # Rapala Pro Bass Fishing (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010115d00.ini: -------------------------------------------------------------------------------- 1 | # The Smurfs 2 (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010116100.ini: -------------------------------------------------------------------------------- 1 | # Xenoblade Chronicles X (JPN) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | accurateShaderMul = false 8 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010117200.ini: -------------------------------------------------------------------------------- 1 | # Monster Hunter 3 Ultimate (EUR) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010118300.ini: -------------------------------------------------------------------------------- 1 | # Monster Hunter 3 Ultimate (USA) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001011a600.ini: -------------------------------------------------------------------------------- 1 | # Cabela's Dangerous Hunts 2013 (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001011af00.ini: -------------------------------------------------------------------------------- 1 | # BIT.TRIP Presents... Runner2: Future Legend of Rhythm Alien (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001011b200.ini: -------------------------------------------------------------------------------- 1 | # Little Inferno (US) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010128600.ini: -------------------------------------------------------------------------------- 1 | # Little Inferno (EUR) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010129000.ini: -------------------------------------------------------------------------------- 1 | # DuckTales: Remastered (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010129200.ini: -------------------------------------------------------------------------------- 1 | # DuckTales: Remastered (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012BC00.ini: -------------------------------------------------------------------------------- 1 | # Pikmin 3 (JPN) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012BD00.ini: -------------------------------------------------------------------------------- 1 | # Pikmin 3 (USA) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012F000.ini: -------------------------------------------------------------------------------- 1 | # FAST Racing NEO (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012b200.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/gameProfiles/default/000500001012b200.ini -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012ba00.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/gameProfiles/default/000500001012ba00.ini -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012be00.ini: -------------------------------------------------------------------------------- 1 | # Pikmin 3 (EU) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012c500.ini: -------------------------------------------------------------------------------- 1 | # The Croods: Prehistoric Party! (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001012da00.ini: -------------------------------------------------------------------------------- 1 | # Fast And Furious Showdown (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010131F00.ini: -------------------------------------------------------------------------------- 1 | # Yoshi's Woolly World (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010132c00.ini: -------------------------------------------------------------------------------- 1 | # Scribblenauts Unmasked: A DC Comics Adventure (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010132d00.ini: -------------------------------------------------------------------------------- 1 | # Scribblenauts Unmasked: A DC Comics Adventure (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010133b00.ini: -------------------------------------------------------------------------------- 1 | # Sniper Elite V2 (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010134e00.ini: -------------------------------------------------------------------------------- 1 | # Sniper Elite V2 (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010135500.ini: -------------------------------------------------------------------------------- 1 | # LEGO Batman 2: DC Super Heroes (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010135e00.ini: -------------------------------------------------------------------------------- 1 | # LEGO Batman 2: DC Super Heroes (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010136300.ini: -------------------------------------------------------------------------------- 1 | # BIT.TRIP Presents... Runner2: Future Legend of Rhythm Alien (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010136c00.ini: -------------------------------------------------------------------------------- 1 | # Batman: Arkham Origins (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010137F00.ini: -------------------------------------------------------------------------------- 1 | # DKC: Tropical Freeze (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010137c00.ini: -------------------------------------------------------------------------------- 1 | # Batman: Arkham Origins (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010138300.ini: -------------------------------------------------------------------------------- 1 | # DKC: Tropical Freeze (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010138a00.ini: -------------------------------------------------------------------------------- 1 | # Angry Birds Trilogy (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010138f00.ini: -------------------------------------------------------------------------------- 1 | # Devil's Third (JPN) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010140000.ini: -------------------------------------------------------------------------------- 1 | # Angry Birds Trilogy (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010143200.ini: -------------------------------------------------------------------------------- 1 | # Cabela's Big Game Hunter: Pro Hunts (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010143500.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Wind Waker HD (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010143600.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Wind Waker HD (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010144800.ini: -------------------------------------------------------------------------------- 1 | # DKC: Tropical Freeze (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010144f00.ini: -------------------------------------------------------------------------------- 1 | # Super Smash Bros for Wii U (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 8 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010145000.ini: -------------------------------------------------------------------------------- 1 | # Super Smash Bros for Wii U (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 8 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010145c00.ini: -------------------------------------------------------------------------------- 1 | # Super Mario 3D World (USA) 2 | 3 | [Graphics] 4 | accurateShaderMul = false -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010145d00.ini: -------------------------------------------------------------------------------- 1 | # Super Mario 3D World (EUR) 2 | 3 | [Graphics] 4 | accurateShaderMul = false -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010147e00.ini: -------------------------------------------------------------------------------- 1 | # Hello Kitty Kruisers (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001014c100.ini: -------------------------------------------------------------------------------- 1 | # Transformers: Rise of the Dark Spark (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001014c600.ini: -------------------------------------------------------------------------------- 1 | # Giana Sisters Twisted Dreams (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001014cb00.ini: -------------------------------------------------------------------------------- 1 | # Giana Sisters Twisted Dreams (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001014d900.ini: -------------------------------------------------------------------------------- 1 | # PUYO PUYO TETRIS (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010154600.ini: -------------------------------------------------------------------------------- 1 | # Batman: Arkham Origins (JPN) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001015b200.ini: -------------------------------------------------------------------------------- 1 | # Child of Light (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010161a00.ini: -------------------------------------------------------------------------------- 1 | # How to Train Your Dragon 2 (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010162200.ini: -------------------------------------------------------------------------------- 1 | # Monkey Pirates (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010162a00.ini: -------------------------------------------------------------------------------- 1 | # How to Train Your Dragon 2 (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010162b00.ini: -------------------------------------------------------------------------------- 1 | # Splatoon (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016a200.ini: -------------------------------------------------------------------------------- 1 | # Bombing Bastards (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016ab00.ini: -------------------------------------------------------------------------------- 1 | # Bombing Bastards (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016b200.ini: -------------------------------------------------------------------------------- 1 | # Master Reboot (USA) 2 | 3 | [General] 4 | useRDTSC = false 5 | 6 | [CPU] 7 | cpuTimer = cycleCounter 8 | cpuMode = Singlecore-Interpreter 9 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016d400.ini: -------------------------------------------------------------------------------- 1 | # Stick It to the Man (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016d800.ini: -------------------------------------------------------------------------------- 1 | # Child of Light (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016da00.ini: -------------------------------------------------------------------------------- 1 | # Nihilumbra (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Interpreter 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016e000.ini: -------------------------------------------------------------------------------- 1 | # Stick It to the Man (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016e800.ini: -------------------------------------------------------------------------------- 1 | # Master Reboot (EUR) 2 | 3 | [General] 4 | useRDTSC = false 5 | 6 | [CPU] 7 | cpuTimer = cycleCounter 8 | cpuMode = Singlecore-Interpreter 9 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016ea00.ini: -------------------------------------------------------------------------------- 1 | # Child of Light (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001016fc00.ini: -------------------------------------------------------------------------------- 1 | # Aqua Moto Racing Utopia (USA) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010170100.ini: -------------------------------------------------------------------------------- 1 | # Monkey Pirates (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010172900.ini: -------------------------------------------------------------------------------- 1 | # Aqua Moto Racing Utopia (EUR) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010173400.ini: -------------------------------------------------------------------------------- 1 | # Transformers: Rise of the Dark Spark (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010176300.ini: -------------------------------------------------------------------------------- 1 | # Little Inferno (JPN) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010176900.ini: -------------------------------------------------------------------------------- 1 | # Splatoon (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010176a00.ini: -------------------------------------------------------------------------------- 1 | # Splatoon (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010177000.ini: -------------------------------------------------------------------------------- 1 | # Hello Kitty Kruisers (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010177500.ini: -------------------------------------------------------------------------------- 1 | # Nihilumbra (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Interpreter 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010177600.ini: -------------------------------------------------------------------------------- 1 | # Devil's Third (USA) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010177700.ini: -------------------------------------------------------------------------------- 1 | # Devil's Third (EUR) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001017d800.ini: -------------------------------------------------------------------------------- 1 | # Hyrule Warriors (USA) 2 | 3 | [General] 4 | useRDTSC = false -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001017d900.ini: -------------------------------------------------------------------------------- 1 | # Hyrule Warriors (EUR) 2 | 3 | [General] 4 | useRDTSC = false -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001017da00.ini: -------------------------------------------------------------------------------- 1 | # Costume Quest 2 (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001017e400.ini: -------------------------------------------------------------------------------- 1 | # Chasing Dead (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010180500.ini: -------------------------------------------------------------------------------- 1 | # Captain Toad: Treasure Tracker (JPN) 2 | 3 | [Graphics] 4 | accurateShaderMul = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010180600.ini: -------------------------------------------------------------------------------- 1 | # Captain Toad: Treasure Tracker (USA) 2 | 3 | [Graphics] 4 | accurateShaderMul = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010180700.ini: -------------------------------------------------------------------------------- 1 | # Captain Toad: Treasure Tracker (EUR) 2 | 3 | [Graphics] 4 | accurateShaderMul = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010183000.ini: -------------------------------------------------------------------------------- 1 | # Runbow (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010184900.ini: -------------------------------------------------------------------------------- 1 | # Slender: The Arrival (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010184E00.ini: -------------------------------------------------------------------------------- 1 | # Yoshi's Woolly World (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010184d00.ini: -------------------------------------------------------------------------------- 1 | # Yoshi's Woolly World (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010185400.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Wind Waker HD (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010189f00.ini: -------------------------------------------------------------------------------- 1 | # Shadow Puppeteer (USA) 2 | 3 | [CPU] 4 | cpuTimer = hostBased 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001018ab00.ini: -------------------------------------------------------------------------------- 1 | # Affordable Space Adventures (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001018d800.ini: -------------------------------------------------------------------------------- 1 | # SteamWorld Dig (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001018d900.ini: -------------------------------------------------------------------------------- 1 | # Lost Reavers (JPN) 2 | 3 | [General] 4 | loadSharedLibraries = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001018f100.ini: -------------------------------------------------------------------------------- 1 | # SteamWorld Dig (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001018f400.ini: -------------------------------------------------------------------------------- 1 | # Angry Video Game Nerd Adventures (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001018fd00.ini: -------------------------------------------------------------------------------- 1 | # The Penguins of Madagascar (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010190300.ini: -------------------------------------------------------------------------------- 1 | # Mario and Sonic at the Rio 2016 Olympic Games (JPN) 2 | 3 | [General] 4 | useRDTSC = false 5 | 6 | [CPU] 7 | cpuMode = Singlecore-Recompiler 8 | cpuTimer = cycleCounter -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010193f00.ini: -------------------------------------------------------------------------------- 1 | # The Penguins of Madagascar (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010195e00.ini: -------------------------------------------------------------------------------- 1 | # Rock Zombie (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010197300.ini: -------------------------------------------------------------------------------- 1 | # Electronic Super Joy Groove City (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010197800.ini: -------------------------------------------------------------------------------- 1 | # Costume Quest 2 (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010199e00.ini: -------------------------------------------------------------------------------- 1 | # High Strangeness (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019ab00.ini: -------------------------------------------------------------------------------- 1 | # High Strangeness (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019b000.ini: -------------------------------------------------------------------------------- 1 | # Tachyon Project (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019b200.ini: -------------------------------------------------------------------------------- 1 | # Tachyon Project (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019ca00.ini: -------------------------------------------------------------------------------- 1 | # Rock Zombie (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019e500.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Twilight Princess (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019e600.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Twilight Princess (EU) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019ea00.ini: -------------------------------------------------------------------------------- 1 | # Zombeer (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001019ee00.ini: -------------------------------------------------------------------------------- 1 | # Zombie Defense (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101C9300.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Breath of the Wild (JPN) 2 | 3 | [Graphics] 4 | disableGPUFence = false 5 | accurateShaderMul = true 6 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101E4100.ini: -------------------------------------------------------------------------------- 1 | # FAST Racing NEO (JPN) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a1200.ini: -------------------------------------------------------------------------------- 1 | # Affordable Space Adventures (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a1800.ini: -------------------------------------------------------------------------------- 1 | # Zombie Defense (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a3b00.ini: -------------------------------------------------------------------------------- 1 | # Life of Pixel (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a4300.ini: -------------------------------------------------------------------------------- 1 | # Beatbuddy (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a4800.ini: -------------------------------------------------------------------------------- 1 | # Lost Reavers (USA) 2 | 3 | [General] 4 | loadSharedLibraries = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a4900.ini: -------------------------------------------------------------------------------- 1 | # Life of Pixel (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a7f00.ini: -------------------------------------------------------------------------------- 1 | # Shiftlings (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a9c00.ini: -------------------------------------------------------------------------------- 1 | # Chompy Chomp Chomp Party (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101a9e00.ini: -------------------------------------------------------------------------------- 1 | # Chompy Chomp Chomp Party (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101acc00.ini: -------------------------------------------------------------------------------- 1 | # Shiftlings (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101b0100.ini: -------------------------------------------------------------------------------- 1 | # Funk of Titans (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101b4e00.ini: -------------------------------------------------------------------------------- 1 | # Funk of Titans (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101b9900.ini: -------------------------------------------------------------------------------- 1 | # Lost Reavers (EUR) 2 | 3 | [General] 4 | loadSharedLibraries = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101bc300.ini: -------------------------------------------------------------------------------- 1 | # Beatbuddy (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c3100.ini: -------------------------------------------------------------------------------- 1 | # Freedom Planet (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c4200.ini: -------------------------------------------------------------------------------- 1 | # The Peanuts Movie: Snoopy's Grand Adventure (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c4300.ini: -------------------------------------------------------------------------------- 1 | # Don't Starve: Giant Edition (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c4c00.ini: -------------------------------------------------------------------------------- 1 | # Xenoblade Chronicles X (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | accurateShaderMul = false 8 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c4d00.ini: -------------------------------------------------------------------------------- 1 | # Xenoblade Chronicles X (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | 6 | [Graphics] 7 | accurateShaderMul = false 8 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c6c00.ini: -------------------------------------------------------------------------------- 1 | # Typoman (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c7600.ini: -------------------------------------------------------------------------------- 1 | # Pumped BMX + (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c7b00.ini: -------------------------------------------------------------------------------- 1 | # Chronicles of Teddy: Harmony of Exidus (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c7d00.ini: -------------------------------------------------------------------------------- 1 | # Pumped BMX + (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c9400.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Breath of the Wild (USA) 2 | 3 | [Graphics] 4 | disableGPUFence = false 5 | accurateShaderMul = true 6 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c9500.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Breath of the Wild (EUR) 2 | 3 | [Graphics] 4 | disableGPUFence = false 5 | accurateShaderMul = true 6 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101c9a00.ini: -------------------------------------------------------------------------------- 1 | # Don't Starve: Giant Edition (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101cc900.ini: -------------------------------------------------------------------------------- 1 | # Freedom Planet (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ccf00.ini: -------------------------------------------------------------------------------- 1 | # Never Alone (Kisima Ingitchuna) (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ce000.ini: -------------------------------------------------------------------------------- 1 | # Typoman (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ce800.ini: -------------------------------------------------------------------------------- 1 | # Never Alone (Kisima Ingitchuna) (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d2100.ini: -------------------------------------------------------------------------------- 1 | # Little Inferno (US) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d4500.ini: -------------------------------------------------------------------------------- 1 | # Grumpy Reaper (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d4d00.ini: -------------------------------------------------------------------------------- 1 | # Joe's Diner (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d5000.ini: -------------------------------------------------------------------------------- 1 | # The Peanuts Movie: Snoopy's Grand Adventure (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d5500.ini: -------------------------------------------------------------------------------- 1 | # Joe's Diner (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d6000.ini: -------------------------------------------------------------------------------- 1 | # FAST Racing NEO (EUR) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Recompiler 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d6d00.ini: -------------------------------------------------------------------------------- 1 | # Runbow (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d7500.ini: -------------------------------------------------------------------------------- 1 | # Minecraft: Wii U Edition (EUR) 2 | 3 | [General] 4 | loadSharedLibraries = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d8900.ini: -------------------------------------------------------------------------------- 1 | # Slender: The Arrival (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d8d00.ini: -------------------------------------------------------------------------------- 1 | # Rock 'N Racing Off Road DX (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d9600.ini: -------------------------------------------------------------------------------- 1 | # Rock 'N Racing Off Road DX (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101d9d00.ini: -------------------------------------------------------------------------------- 1 | # Minecraft: Wii U Edition (USA) 2 | 3 | [General] 4 | loadSharedLibraries = false 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dac00.ini: -------------------------------------------------------------------------------- 1 | # Swap Fire -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101daf00.ini: -------------------------------------------------------------------------------- 1 | # Chronicles of Teddy: Harmony of Exidus (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101db000.ini: -------------------------------------------------------------------------------- 1 | # Oddworld New 'n' Tasty (US) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dbb00.ini: -------------------------------------------------------------------------------- 1 | # Oddworld New 'n' Tasty (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dbc00.ini: -------------------------------------------------------------------------------- 1 | # Star Ghost (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dbe00.ini: -------------------------------------------------------------------------------- 1 | # Minecraft: Wii U Edition (JPN) 2 | 3 | [General] 4 | loadSharedLibraries = false -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dbf00.ini: -------------------------------------------------------------------------------- 1 | # Angry Video Game Nerd Adventures (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dc000.ini: -------------------------------------------------------------------------------- 1 | # Vektor Wars (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dc200.ini: -------------------------------------------------------------------------------- 1 | # Vektor Wars (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dd000.ini: -------------------------------------------------------------------------------- 1 | # Star Ghost (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dd600.ini: -------------------------------------------------------------------------------- 1 | # BIT.TRIP Presents... Runner2: Future Legend of Rhythm Alien (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101dd700.ini: -------------------------------------------------------------------------------- 1 | # Runbow (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ddf00.ini: -------------------------------------------------------------------------------- 1 | # Hive Jump (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e0100.ini: -------------------------------------------------------------------------------- 1 | # Minecraft: Story Mode (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e1800.ini: -------------------------------------------------------------------------------- 1 | # Human Resource Machine (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e1a00.ini: -------------------------------------------------------------------------------- 1 | # Human Resource Machine (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e1b00.ini: -------------------------------------------------------------------------------- 1 | # Shadow Puppeteer (EUR) 2 | 3 | [CPU] 4 | cpuTimer = hostBased 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e3800.ini: -------------------------------------------------------------------------------- 1 | # Dual Core (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e4200.ini: -------------------------------------------------------------------------------- 1 | # Master Reboot (JPN) 2 | 3 | [General] 4 | useRDTSC = false 5 | 6 | [CPU] 7 | cpuTimer = cycleCounter 8 | cpuMode = Singlecore-Interpreter 9 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e5300.ini: -------------------------------------------------------------------------------- 1 | # Mario and Sonic at the Rio 2016 Olympic Games (USA) 2 | 3 | [General] 4 | useRDTSC = false 5 | 6 | [CPU] 7 | cpuMode = Singlecore-Recompiler 8 | cpuTimer = cycleCounter 9 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e5400.ini: -------------------------------------------------------------------------------- 1 | # Mario and Sonic at the Rio 2016 Olympic Games (EUR) 2 | 3 | [General] 4 | useRDTSC = false 5 | 6 | [CPU] 7 | cpuMode = Singlecore-Recompiler 8 | cpuTimer = cycleCounter 9 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e5e00.ini: -------------------------------------------------------------------------------- 1 | # Chasing Dead (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e7300.ini: -------------------------------------------------------------------------------- 1 | # The Deer God (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e7400.ini: -------------------------------------------------------------------------------- 1 | # Grumpy Reaper (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e9300.ini: -------------------------------------------------------------------------------- 1 | # Gear Gauntlet (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101e9400.ini: -------------------------------------------------------------------------------- 1 | # Gear Gauntlet (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101eb300.ini: -------------------------------------------------------------------------------- 1 | # The Beggar's Ride (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ec700.ini: -------------------------------------------------------------------------------- 1 | # The Beggar's Ride (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ecf00.ini: -------------------------------------------------------------------------------- 1 | # Buddy & Me Dream Edition (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f1300.ini: -------------------------------------------------------------------------------- 1 | # Armikrog (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f2800.ini: -------------------------------------------------------------------------------- 1 | # 8Bit Hero (USA) 2 | 3 | [CPU] 4 | cpuMode = Singlecore-Interpreter -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f4a00.ini: -------------------------------------------------------------------------------- 1 | # Buddy & Me Dream Edition (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f5700.ini: -------------------------------------------------------------------------------- 1 | # Jotun Valhalla Edition (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f6f00.ini: -------------------------------------------------------------------------------- 1 | # Jotun Valhalla Edition (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f7600.ini: -------------------------------------------------------------------------------- 1 | # Dual Core (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101f9700.ini: -------------------------------------------------------------------------------- 1 | # Darksiders Warmastered Edition (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101fa600.ini: -------------------------------------------------------------------------------- 1 | # Darksiders Warmastered Edition (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101fd100.ini: -------------------------------------------------------------------------------- 1 | # Grumpy Reaper (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ff200.ini: -------------------------------------------------------------------------------- 1 | # Exile's End (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ffc00.ini: -------------------------------------------------------------------------------- 1 | # Ghost Blade HD (USA) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/00050000101ffe00.ini: -------------------------------------------------------------------------------- 1 | # Tetrimos (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010200300.ini: -------------------------------------------------------------------------------- 1 | # Armikrog (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010200b00.ini: -------------------------------------------------------------------------------- 1 | # Tetrimos (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010204a00.ini: -------------------------------------------------------------------------------- 1 | # Exile's End (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010207300.ini: -------------------------------------------------------------------------------- 1 | # Koi DX (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010207500.ini: -------------------------------------------------------------------------------- 1 | # Koi DX (USA) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001020a200.ini: -------------------------------------------------------------------------------- 1 | # Minecraft: Story Mode (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500001020b600.ini: -------------------------------------------------------------------------------- 1 | # Ghost Blade HD (EUR) 2 | 3 | [Graphics] 4 | streamoutBufferCacheSize = 48 -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000010211b00.ini: -------------------------------------------------------------------------------- 1 | # Sphere Slice (EUR) -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000C1012BC00.ini: -------------------------------------------------------------------------------- 1 | # Pikmin 3 (JAP) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000C1012BD00.ini: -------------------------------------------------------------------------------- 1 | # Pikmin 3 (USA) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000C1012BE00.ini: -------------------------------------------------------------------------------- 1 | # Pikmin 3 (EU) 2 | 3 | [Graphics] 4 | extendedTextureReadback = true 5 | -------------------------------------------------------------------------------- /bin/gameProfiles/default/0005000e1019c800.ini: -------------------------------------------------------------------------------- 1 | # TLoZ: Twilight Princess (JPN) -------------------------------------------------------------------------------- /bin/gameProfiles/default/000500c01017cd00.ini: -------------------------------------------------------------------------------- 1 | # Hyrule Warriors (JPN) 2 | 3 | [General] 4 | useRDTSC = false -------------------------------------------------------------------------------- /bin/resources/ar/‏‏cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/ar/‏‏cemu.mo -------------------------------------------------------------------------------- /bin/resources/ca/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/ca/cemu.mo -------------------------------------------------------------------------------- /bin/resources/de/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/de/cemu.mo -------------------------------------------------------------------------------- /bin/resources/es/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/es/cemu.mo -------------------------------------------------------------------------------- /bin/resources/fr/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/fr/cemu.mo -------------------------------------------------------------------------------- /bin/resources/he/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/he/cemu.mo -------------------------------------------------------------------------------- /bin/resources/hu/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/hu/cemu.mo -------------------------------------------------------------------------------- /bin/resources/it/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/it/cemu.mo -------------------------------------------------------------------------------- /bin/resources/ja/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/ja/cemu.mo -------------------------------------------------------------------------------- /bin/resources/ko/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/ko/cemu.mo -------------------------------------------------------------------------------- /bin/resources/nb/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/nb/cemu.mo -------------------------------------------------------------------------------- /bin/resources/nl/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/nl/cemu.mo -------------------------------------------------------------------------------- /bin/resources/pl/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/pl/cemu.mo -------------------------------------------------------------------------------- /bin/resources/pt/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/pt/cemu.mo -------------------------------------------------------------------------------- /bin/resources/ru/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/ru/cemu.mo -------------------------------------------------------------------------------- /bin/resources/sharedFonts/CafeCn.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/sharedFonts/CafeCn.ttf -------------------------------------------------------------------------------- /bin/resources/sharedFonts/CafeKr.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/sharedFonts/CafeKr.ttf -------------------------------------------------------------------------------- /bin/resources/sharedFonts/CafeStd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/sharedFonts/CafeStd.ttf -------------------------------------------------------------------------------- /bin/resources/sharedFonts/CafeTw.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/sharedFonts/CafeTw.ttf -------------------------------------------------------------------------------- /bin/resources/sv/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/sv/cemu.mo -------------------------------------------------------------------------------- /bin/resources/tr/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/tr/cemu.mo -------------------------------------------------------------------------------- /bin/resources/uk/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/uk/cemu.mo -------------------------------------------------------------------------------- /bin/resources/zh/cemu.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/bin/resources/zh/cemu.mo -------------------------------------------------------------------------------- /cmake/ECMFindModuleHelpersStub.cmake: -------------------------------------------------------------------------------- 1 | include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpers.cmake) 2 | -------------------------------------------------------------------------------- /cmake/FindGTK3.cmake: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Andrea Pappacoda 2 | # SPDX-License-Identifier: ISC 3 | 4 | include(FindPackageHandleStandardArgs) 5 | 6 | find_package(PkgConfig) 7 | if (PKG_CONFIG_FOUND) 8 | pkg_search_module(GTK3 IMPORTED_TARGET gtk+-3.0) 9 | if (GTK3_FOUND) 10 | add_library(GTK3::gtk ALIAS PkgConfig::GTK3) 11 | endif() 12 | find_package_handle_standard_args(GTK3 13 | REQUIRED_VARS GTK3_LINK_LIBRARIES 14 | VERSION_VAR GTK3_VERSION 15 | ) 16 | endif() 17 | -------------------------------------------------------------------------------- /cmake/FindZArchive.cmake: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Andrea Pappacoda 2 | # SPDX-License-Identifier: ISC 3 | 4 | find_package(PkgConfig) 5 | 6 | if (PKG_CONFIG_FOUND) 7 | pkg_search_module(zarchive IMPORTED_TARGET GLOBAL zarchive) 8 | if (zarchive_FOUND) 9 | add_library(ZArchive::zarchive ALIAS PkgConfig::zarchive) 10 | endif() 11 | endif() 12 | 13 | include(FindPackageHandleStandardArgs) 14 | find_package_handle_standard_args(ZArchive 15 | REQUIRED_VARS 16 | zarchive_LINK_LIBRARIES 17 | zarchive_FOUND 18 | VERSION_VAR 19 | zarchive_VERSION 20 | ) 21 | -------------------------------------------------------------------------------- /cmake/Findbluez.cmake: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Andrea Pappacoda 2 | # SPDX-License-Identifier: ISC 3 | 4 | find_package(bluez CONFIG) 5 | if (NOT bluez_FOUND) 6 | find_package(PkgConfig) 7 | if (PKG_CONFIG_FOUND) 8 | pkg_search_module(bluez IMPORTED_TARGET GLOBAL bluez-1.0 bluez) 9 | if (bluez_FOUND) 10 | add_library(bluez::bluez ALIAS PkgConfig::bluez) 11 | endif () 12 | endif () 13 | endif () 14 | 15 | find_package_handle_standard_args(bluez 16 | REQUIRED_VARS 17 | bluez_LINK_LIBRARIES 18 | bluez_FOUND 19 | VERSION_VAR bluez_VERSION 20 | ) 21 | -------------------------------------------------------------------------------- /cmake/Findimgui.cmake: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Andrea Pappacoda 2 | # SPDX-License-Identifier: ISC 3 | 4 | include(FindPackageHandleStandardArgs) 5 | 6 | find_package(imgui CONFIG) 7 | if (imgui_FOUND) 8 | # Use upstream imguiConfig.cmake if possible 9 | find_package_handle_standard_args(imgui CONFIG_MODE) 10 | else() 11 | # Fallback to pkg-config otherwise 12 | find_package(PkgConfig) 13 | if (PKG_CONFIG_FOUND) 14 | pkg_search_module(imgui IMPORTED_TARGET GLOBAL imgui) 15 | if (imgui_FOUND) 16 | add_library(imgui::imgui ALIAS PkgConfig::imgui) 17 | endif() 18 | endif() 19 | 20 | find_package_handle_standard_args(imgui 21 | REQUIRED_VARS 22 | imgui_LINK_LIBRARIES 23 | imgui_FOUND 24 | VERSION_VAR 25 | imgui_VERSION 26 | ) 27 | endif() 28 | -------------------------------------------------------------------------------- /cmake/Findlibusb.cmake: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2022 Andrea Pappacoda 2 | # SPDX-License-Identifier: ISC 3 | 4 | find_package(libusb CONFIG) 5 | if (NOT libusb_FOUND) 6 | find_package(PkgConfig) 7 | if (PKG_CONFIG_FOUND) 8 | pkg_search_module(libusb IMPORTED_TARGET GLOBAL libusb-1.0 libusb) 9 | if (libusb_FOUND) 10 | add_library(libusb::libusb ALIAS PkgConfig::libusb) 11 | endif () 12 | endif () 13 | endif () 14 | 15 | find_package_handle_standard_args(libusb 16 | REQUIRED_VARS 17 | libusb_LINK_LIBRARIES 18 | libusb_FOUND 19 | VERSION_VAR libusb_VERSION 20 | ) 21 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/.gitignore: -------------------------------------------------------------------------------- 1 | /build*/ 2 | /.vscode/ 3 | /thirdparty/ 4 | .vs/ 5 | .DS_Store -------------------------------------------------------------------------------- /dependencies/discord-rpc/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: '{build}' 2 | install: 3 | - python -m pip install click 4 | 5 | build_script: 6 | - mkdir examples\unrealstatus\Plugins\discordrpc\Binaries\ThirdParty\discordrpcLibrary\Win64 7 | - python build.py 8 | 9 | artifacts: 10 | - path: builds\install\win32-dynamic 11 | name: win32-dynamic 12 | - path: builds\install\win32-static 13 | name: win32-static 14 | - path: builds\install\win64-dynamic 15 | name: win64-dynamic 16 | - path: builds\install\win64-static 17 | name: win64-static 18 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/documentation/images/rp-dev-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/documentation/images/rp-dev-dashboard.png -------------------------------------------------------------------------------- /dependencies/discord-rpc/documentation/images/rp-profile-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/documentation/images/rp-profile-view.png -------------------------------------------------------------------------------- /dependencies/discord-rpc/documentation/images/rp-secret-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/documentation/images/rp-secret-example.png -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/.gitignore: -------------------------------------------------------------------------------- 1 | /Library/ 2 | /Temp/ 3 | /obj/ 4 | /Assets/Plugins/ 5 | /Assets/Plugins.meta 6 | *.sln 7 | *.csproj 8 | *.userprefs 9 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/Assets/DiscordController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27f0a5f59ffffa84c86547736e2e730a 3 | timeCreated: 1501697692 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/Assets/DiscordRpc.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4474a677de9d80409e98c5393ec5b1e 3 | timeCreated: 1501697692 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/Assets/Editor/BuildHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5aecc4633e5f594b85eaa39f49bb402 3 | timeCreated: 1512071254 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/Assets/main.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b03d21bb25fa494e8694cd6e4b6d769 3 | timeCreated: 1501696924 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | m_AutoSyncTransforms: 1 21 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/main.unity 10 | guid: 3b03d21bb25fa494e8694cd6e4b6d769 11 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_DefaultBehaviorMode: 1 10 | m_SpritePackerMode: 4 11 | m_SpritePackerPaddingPower: 1 12 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 13 | m_ProjectGenerationRootNamespace: 14 | m_UserGeneratedProjectSuffix: 15 | m_CollabEditorSettings: 16 | inProgressEnabled: 1 17 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2017.2.0f3 2 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/button-clicker/UnityPackageManager/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/send-presence/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include_directories(${PROJECT_SOURCE_DIR}/include) 2 | add_executable( 3 | send-presence 4 | MACOSX_BUNDLE 5 | send-presence.c 6 | ) 7 | set_target_properties(send-presence PROPERTIES 8 | MACOSX_BUNDLE_BUNDLE_NAME "Send Presence" 9 | MACOSX_BUNDLE_GUI_IDENTIFIER "com.discordapp.examples.send-presence" 10 | ) 11 | target_link_libraries(send-presence discord-rpc) 12 | 13 | install( 14 | TARGETS send-presence 15 | RUNTIME 16 | DESTINATION "bin" 17 | CONFIGURATIONS Release 18 | BUNDLE 19 | DESTINATION "bin" 20 | CONFIGURATIONS Release 21 | ) -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Config/DefaultEditor.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Config/DefaultEditor.ini -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Config/DefaultGame.ini: -------------------------------------------------------------------------------- 1 | [/Script/EngineSettings.GeneralProjectSettings] 2 | ProjectID=E5977A24492699DF20B8ADBF736AF6C6 3 | ProjectName=Discord RPC Example 4 | CompanyName=Discord Inc. 5 | Homepage="https://discordapp.com/" 6 | CopyrightNotice= 7 | 8 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Content/MainScreenBP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Content/MainScreenBP.uasset -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Content/MouseGameModeBP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Content/MouseGameModeBP.uasset -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Content/MousePlayerControllerBP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Content/MousePlayerControllerBP.uasset -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Content/ShowTheUILevel.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Content/ShowTheUILevel.umap -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/DiscordRpc.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "VersionName": "1.0", 5 | "FriendlyName": "Discord RPC", 6 | "Description": "Wrap the Discord RPC library.", 7 | "Category": "Messaging", 8 | "CreatedBy": "Chris Marsh ", 9 | "CreatedByURL": "https://discordapp.com/", 10 | "DocsURL": "", 11 | "MarketplaceURL": "", 12 | "SupportURL": "", 13 | "CanContainContent": true, 14 | "IsBetaVersion": true, 15 | "Installed": false, 16 | "Modules": [ 17 | { 18 | "Name": "DiscordRpc", 19 | "Type": "Runtime", 20 | "LoadingPhase": "PreDefault", 21 | "WhitelistPlatforms" : 22 | [ 23 | "Win64", 24 | "Linux", 25 | "Mac" 26 | ] 27 | } 28 | ] 29 | } -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/Resources/Icon128.png -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/Resources/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/Resources/discord.png -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Private/DiscordRpcPrivatePCH.h: -------------------------------------------------------------------------------- 1 | #include "Core.h" 2 | #include "DiscordRpc.h" -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Plugins/discordrpc/Source/DiscordRpc/Public/DiscordRpc.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved. 2 | 3 | #pragma once 4 | 5 | #include "ModuleManager.h" 6 | 7 | class FDiscordRpcModule : public IModuleInterface { 8 | public: 9 | /** IModuleInterface implementation */ 10 | virtual void StartupModule() override; 11 | virtual void ShutdownModule() override; 12 | 13 | private: 14 | /** Handle to the test dll we will load */ 15 | void* DiscordRpcLibraryHandle; 16 | 17 | /** StartupModule is covered with defines, these functions are the place to put breakpoints */ 18 | static bool LoadDependency(const FString& Dir, const FString& Name, void*& Handle); 19 | static void FreeDependency(void*& Handle); 20 | }; -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Source/unrealstatus.Target.cs: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class unrealstatusTarget : TargetRules 7 | { 8 | public unrealstatusTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | 12 | ExtraModuleNames.AddRange( new string[] { "unrealstatus" } ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Source/unrealstatus/unrealstatus.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "unrealstatus.h" 4 | #include "Modules/ModuleManager.h" 5 | 6 | IMPLEMENT_PRIMARY_GAME_MODULE(FDefaultGameModuleImpl, unrealstatus, "unrealstatus"); 7 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Source/unrealstatus/unrealstatus.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Source/unrealstatus/unrealstatusGameModeBase.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "unrealstatusGameModeBase.h" 4 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Source/unrealstatus/unrealstatusGameModeBase.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "CoreMinimal.h" 6 | #include "GameFramework/GameModeBase.h" 7 | #include "unrealstatusGameModeBase.generated.h" 8 | 9 | /** 10 | * 11 | */ 12 | UCLASS() 13 | class UNREALSTATUS_API AunrealstatusGameModeBase : public AGameModeBase { 14 | GENERATED_BODY() 15 | }; 16 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/Source/unrealstatusEditor.Target.cs: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class unrealstatusEditorTarget : TargetRules 7 | { 8 | public unrealstatusEditorTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | 12 | ExtraModuleNames.AddRange( new string[] { "unrealstatus" } ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/examples/unrealstatus/unrealstatus.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "4.18", 4 | "Category": "", 5 | "Description": "", 6 | "Modules": [ 7 | { 8 | "Name": "unrealstatus", 9 | "Type": "Runtime", 10 | "LoadingPhase": "Default" 11 | } 12 | ], 13 | "TargetPlatforms": [ 14 | "LinuxNoEditor", 15 | "MacNoEditor", 16 | "WindowsNoEditor", 17 | "AllDesktop" 18 | ] 19 | } -------------------------------------------------------------------------------- /dependencies/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 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/src/connection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // This is to wrap the platform specific kinds of connect/read/write. 4 | 5 | #include 6 | #include 7 | 8 | // not really connectiony, but need per-platform 9 | int GetProcessId(); 10 | 11 | struct BaseConnection { 12 | static BaseConnection* Create(); 13 | static void Destroy(BaseConnection*&); 14 | bool isOpen{false}; 15 | bool Open(); 16 | bool Close(); 17 | bool Write(const void* data, size_t length); 18 | bool Read(void* data, size_t length); 19 | }; 20 | -------------------------------------------------------------------------------- /dependencies/discord-rpc/src/dllmain.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // outsmart GCC's missing-declarations warning 4 | BOOL WINAPI DllMain(HMODULE, DWORD, LPVOID); 5 | BOOL WINAPI DllMain(HMODULE, DWORD, LPVOID) 6 | { 7 | return TRUE; 8 | } 9 | -------------------------------------------------------------------------------- /dependencies/gamemode/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project( gamemode LANGUAGES C ) 2 | add_library (gamemode 3 | "lib/gamemode_client.h" 4 | "lib/client_loader.c") -------------------------------------------------------------------------------- /dependencies/ih264d/CHANGES: -------------------------------------------------------------------------------- 1 | Code adjustments made by Team Cemu for Cemu emulator project as of 2022-02-01: 2 | - Stripped encoder, tests and fuzzer. We only need the decoder 3 | - Extended ih264_platform_macros.h to support MSVC instrinsics 4 | - Extended ithread.c to use WinAPI natives instead of requiring pthread.h 5 | - The decoder will output images without regarding SPS crop flag and instead pass the crop values in the decode output structure 6 | - Modified decoder/x86/ih264d_function_selector.c ih264d_init_arch() to automatically choose the best e_processor_arch for the current CPU -------------------------------------------------------------------------------- /dependencies/ih264d/CMakeSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "x64-Debug", 5 | "generator": "Ninja", 6 | "configurationType": "Debug", 7 | "inheritEnvironments": [ "msvc_x64_x64" ], 8 | "buildRoot": "${projectDir}\\out\\build\\${name}", 9 | "installRoot": "${projectDir}\\out\\install\\${name}", 10 | "cmakeCommandArgs": "", 11 | "buildCommandArgs": "", 12 | "ctestCommandArgs": "" 13 | }, 14 | { 15 | "name": "x64-Release", 16 | "generator": "Ninja", 17 | "configurationType": "Release", 18 | "buildRoot": "${projectDir}\\out\\build\\${name}", 19 | "installRoot": "${projectDir}\\out\\install\\${name}", 20 | "cmakeCommandArgs": "", 21 | "buildCommandArgs": "", 22 | "ctestCommandArgs": "", 23 | "inheritEnvironments": [ "msvc_x64_x64" ] 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /dependencies/ih264d/common/ih264_cavlc_tables.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/ih264d/common/ih264_cavlc_tables.c -------------------------------------------------------------------------------- /dependencies/ih264d/common/ih264_cavlc_tables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/ih264d/common/ih264_cavlc_tables.h -------------------------------------------------------------------------------- /dependencies/ih264d/common/ih264_common_tables.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/ih264d/common/ih264_common_tables.c -------------------------------------------------------------------------------- /dependencies/ih264d/common/ih264_common_tables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/ih264d/common/ih264_common_tables.h -------------------------------------------------------------------------------- /dependencies/ih264d/common/ih264_deblk_tables.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/ih264d/common/ih264_deblk_tables.c -------------------------------------------------------------------------------- /dependencies/ih264d/common/ih264_deblk_tables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/ih264d/common/ih264_deblk_tables.h -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/vcpkg_overlay_ports/.gitkeep -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/vcpkg_overlay_ports_linux/.gitkeep -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/cairo/portfile.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) 2 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/cairo/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cairo", 3 | "version": "1.17.8", 4 | "description": "Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.", 5 | "homepage": "https://cairographics.org", 6 | "license": "MPL-1.1", 7 | "port-version": 2 8 | } 9 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/glm/portfile.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) 2 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/glm/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glm", 3 | "version": "0.9.9.8", 4 | "port-version": 3, 5 | "description": "OpenGL Mathematics (GLM)", 6 | "homepage": "https://glm.g-truc.net", 7 | "license": "MIT" 8 | } 9 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/gtk3/portfile.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) 2 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/gtk3/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gtk3", 3 | "version": "3.24.34", 4 | "port-version": 5, 5 | "description": "Portable library for creating graphical user interfaces.", 6 | "homepage": "https://www.gtk.org/", 7 | "license": null 8 | } 9 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/libpng/portfile.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) 2 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_linux/libpng/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libpng", 3 | "version": "1.6.39", 4 | "port-version": 2, 5 | "description": "libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files", 6 | "homepage": "https://github.com/glennrp/libpng", 7 | "license": "libpng-2.0" 8 | } 9 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_mac/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dependencies/vcpkg_overlay_ports_mac/.gitkeep -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_mac/libusb/usage: -------------------------------------------------------------------------------- 1 | libusb can be imported via CMake FindPkgConfig module: 2 | find_package(PkgConfig REQUIRED) 3 | pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) 4 | 5 | target_link_libraries(main PRIVATE PkgConfig::libusb) 6 | -------------------------------------------------------------------------------- /dependencies/vcpkg_overlay_ports_mac/libusb/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libusb", 3 | "version": "1.0.26.11791", 4 | "port-version": 7, 5 | "description": "a cross-platform library to access USB devices", 6 | "homepage": "https://github.com/libusb/libusb", 7 | "license": "LGPL-2.1-or-later" 8 | } 9 | -------------------------------------------------------------------------------- /dist/linux/info.cemu.Cemu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/dist/linux/info.cemu.Cemu.png -------------------------------------------------------------------------------- /src/Cafe/Filesystem/FST/KeyCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void KeyCache_Prepare(); 4 | 5 | uint8* KeyCache_GetAES128(sint32 index); -------------------------------------------------------------------------------- /src/Cafe/GamePatch.h: -------------------------------------------------------------------------------- 1 | void GamePatch_scan(); 2 | bool GamePatch_IsNonReturnFunction(uint32 hleIndex); -------------------------------------------------------------------------------- /src/Cafe/GraphicPack/GraphicPackError.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PatchErrorHandler 4 | { 5 | public: 6 | enum class STAGE 7 | { 8 | PARSER, 9 | APPLY, 10 | }; 11 | 12 | 13 | void setCurrentGraphicPack(class GraphicPack2* gp) 14 | { 15 | m_gp = gp; 16 | } 17 | 18 | void setStage(STAGE s) 19 | { 20 | m_stage = s; 21 | } 22 | 23 | void printError(class PatchGroup* patchGroup, sint32 lineNumber, std::string_view errorMsg); 24 | void showStageErrorMessageBox(); 25 | 26 | bool hasError() const { return m_anyErrorTriggered; }; 27 | 28 | class GraphicPack2* m_gp{}; 29 | bool m_anyErrorTriggered{}; 30 | STAGE m_stage{ STAGE::PARSER }; 31 | std::vector errorMessages; // if patch logging is enabled also remember error msgs for the message box 32 | }; 33 | -------------------------------------------------------------------------------- /src/Cafe/HW/AI/AI.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/HW/MMU/MMU.h" 2 | 3 | 4 | namespace HW_AI 5 | { 6 | 7 | void AI_STATUS_W16(uint32 addr, uint16 value) 8 | { 9 | 10 | } 11 | 12 | RunAtCemuBoot _init([]() 13 | { 14 | //using MMIOFuncWrite16 = void (*)(uint32 addr, uint16 value); 15 | //using MMIOFuncWrite32 = void (*)(uint32 addr, uint32 value); 16 | 17 | //void RegisterMMIO_W16(MMIOFuncWrite16 ptr); 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /src/Cafe/HW/AI/AI.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/Cafe/HW/AI/AI.h -------------------------------------------------------------------------------- /src/Cafe/HW/Espresso/Const.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Espresso 4 | { 5 | constexpr inline int CORE_COUNT = 3; 6 | 7 | constexpr inline uint64 CORE_CLOCK = 1243125000; 8 | constexpr inline uint64 BUS_CLOCK = 248625000; 9 | constexpr inline uint64 TIMER_CLOCK = BUS_CLOCK / 4; 10 | 11 | constexpr inline uint32 MEM_PAGE_SIZE = 0x20000; 12 | }; -------------------------------------------------------------------------------- /src/Cafe/HW/Espresso/Debugger/DebugSymbolStorage.cpp: -------------------------------------------------------------------------------- 1 | #include "Common/precompiled.h" 2 | #include "DebugSymbolStorage.h" 3 | 4 | FSpinlock DebugSymbolStorage::s_lock; 5 | std::unordered_map DebugSymbolStorage::s_typeStorage; 6 | -------------------------------------------------------------------------------- /src/Cafe/HW/Espresso/Recompiler/BackendAArch64/BackendAArch64.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "HW/Espresso/Recompiler/IML/IMLInstruction.h" 4 | #include "../PPCRecompiler.h" 5 | 6 | bool PPCRecompiler_generateAArch64Code(struct PPCRecFunction_t* PPCRecFunction, struct ppcImlGenContext_t* ppcImlGenContext); 7 | void PPCRecompiler_cleanupAArch64Code(void* code, size_t size); 8 | 9 | void PPCRecompilerAArch64Gen_generateRecompilerInterfaceFunctions(); 10 | 11 | // architecture specific constants 12 | namespace IMLArchAArch64 13 | { 14 | static constexpr int PHYSREG_GPR_BASE = 0; 15 | static constexpr int PHYSREG_GPR_COUNT = 25; 16 | static constexpr int PHYSREG_FPR_BASE = PHYSREG_GPR_COUNT; 17 | static constexpr int PHYSREG_FPR_COUNT = 31; 18 | }; // namespace IMLArchAArch64 -------------------------------------------------------------------------------- /src/Cafe/HW/Espresso/Recompiler/IML/IML.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "IMLInstruction.h" 4 | #include "IMLSegment.h" 5 | 6 | // optimizer passes 7 | void IMLOptimizer_OptimizeDirectFloatCopies(struct ppcImlGenContext_t* ppcImlGenContext); 8 | void IMLOptimizer_OptimizeDirectIntegerCopies(struct ppcImlGenContext_t* ppcImlGenContext); 9 | void PPCRecompiler_optimizePSQLoadAndStore(struct ppcImlGenContext_t* ppcImlGenContext); 10 | 11 | void IMLOptimizer_StandardOptimizationPass(ppcImlGenContext_t& ppcImlGenContext); 12 | 13 | // debug 14 | void IMLDebug_DisassembleInstruction(const IMLInstruction& inst, std::string& disassemblyLineOut); 15 | void IMLDebug_DumpSegment(struct ppcImlGenContext_t* ctx, IMLSegment* imlSegment, bool printLivenessRangeInfo = false); 16 | void IMLDebug_Dump(struct ppcImlGenContext_t* ppcImlGenContext, bool printLivenessRangeInfo = false); 17 | -------------------------------------------------------------------------------- /src/Cafe/HW/Espresso/Recompiler/IML/IMLAnalyzer.cpp: -------------------------------------------------------------------------------- 1 | #include "IML.h" 2 | //#include "PPCRecompilerIml.h" 3 | #include "util/helpers/fixedSizeList.h" 4 | 5 | #include "Cafe/HW/Espresso/Interpreter/PPCInterpreterInternal.h" 6 | -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Common/RegisterSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "util/helpers/Serializer.h" 3 | 4 | namespace Latte 5 | { 6 | struct GPUCompactedRegisterState 7 | { 8 | static constexpr int const NUM_REGS = 1854; 9 | 10 | // tied to g_gpuRegSerializerMapping_v1 11 | uint32 rawArray[NUM_REGS]; 12 | }; 13 | 14 | // convert GPU register state into compacted representation. Stores almost all registers, excluding ALU consts 15 | void StoreGPURegisterState(const LatteContextRegister& contextRegister, GPUCompactedRegisterState& registerStateOut); 16 | void LoadGPURegisterState(LatteContextRegister& contextRegisterOut, const GPUCompactedRegisterState& registerState); 17 | 18 | void SerializeRegisterState(GPUCompactedRegisterState& regState, MemStreamWriter& memWriter); 19 | bool DeserializeRegisterState(GPUCompactedRegisterState& regState, MemStreamReader& memReader); 20 | } -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Common/ShaderSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "util/helpers/Serializer.h" 3 | 4 | namespace Latte 5 | { 6 | void SerializeShaderProgram(void* shaderProg, uint32 size, MemStreamWriter& memWriter); 7 | bool DeserializeShaderProgram(std::vector& progData, MemStreamReader& memReader); 8 | }; -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteAsyncCommands.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void LatteAsyncCommands_queueForceTextureReadback(MPTR physAddr, MPTR mipAddr, uint32 swizzle, sint32 format, sint32 width, sint32 height, sint32 depth, uint32 pitch, uint32 slice, sint32 dim, Latte::E_HWTILEMODE tilemode, sint32 aa, sint32 level); 4 | void LatteAsyncCommands_queueDeleteShader(uint64 shaderBaseHash, uint64 shaderAuxHash, LatteConst::ShaderType shaderType); 5 | void LatteAsyncCommands_waitUntilAllProcessed(); 6 | 7 | void LatteAsyncCommands_checkAndExecute(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteBufferCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void LatteBufferCache_init(size_t bufferSize); 4 | void LatteBufferCache_UnloadAll(); 5 | 6 | uint32 LatteBufferCache_retrieveDataInCache(MPTR physAddress, uint32 size); 7 | void LatteBufferCache_copyStreamoutDataToCache(MPTR physAddress, uint32 size, uint32 streamoutBufferOffset); 8 | void LatteBufferCache_invalidate(MPTR physAddress, uint32 size); 9 | 10 | void LatteBufferCache_notifyDCFlush(MPTR address, uint32 size); 11 | void LatteBufferCache_processDCFlushQueue(); 12 | 13 | void LatteBufferCache_processDeallocations(); 14 | void LatteBufferCache_incrementalCleanup(); 15 | 16 | void LatteBufferCache_getStats(uint32& heapSize, uint32& allocationSize, uint32& allocNum); 17 | 18 | void LatteBufferCache_notifySwapTVScanBuffer(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteDefaultShaders.h: -------------------------------------------------------------------------------- 1 | 2 | typedef struct 3 | { 4 | GLuint glProgamId; 5 | struct 6 | { 7 | GLuint uniformLoc_textureSrc; 8 | GLuint uniformLoc_vertexOffsets; 9 | }copyShaderUniforms; 10 | }LatteDefaultShader_t; 11 | 12 | LatteDefaultShader_t* LatteDefaultShader_getPixelCopyShader_depthToColor(); 13 | LatteDefaultShader_t* LatteDefaultShader_getPixelCopyShader_colorToDepth(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteDraw.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Common/GLInclude/GLInclude.h" 3 | 4 | void LatteDraw_cleanupAfterFrame(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteIndices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/HW/Latte/Core/LatteConst.h" 3 | #include "Cafe/HW/Latte/ISA/LatteReg.h" 4 | 5 | void LatteIndices_invalidate(const void* memPtr, uint32 size); 6 | void LatteIndices_invalidateAll(); 7 | void LatteIndices_decode(const void* indexData, LatteIndexType indexType, uint32 count, LattePrimitiveMode primitiveMode, uint32& indexMin, uint32& indexMax, Renderer::INDEX_TYPE& renderIndexType, uint32& outputCount, Renderer::IndexAllocation& indexAllocation); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteOverlay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void LatteOverlay_init(); 4 | void LatteOverlay_render(bool pad_view); 5 | void LatteOverlay_updateStats(double fps, sint32 drawcalls, sint32 fastDrawcalls); 6 | 7 | void LatteOverlay_pushNotification(const std::string& text, sint32 duration); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteQueryObject.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LatteQueryObject 4 | { 5 | public: 6 | virtual bool getResult(uint64& numSamplesPassed) = 0; 7 | virtual void begin() = 0; 8 | virtual void end() = 0; 9 | 10 | uint32 index{}; 11 | bool queryEnded{}; // set to true once the query is ended, but the result may not be available for some time after this 12 | uint64 queryEventStart{}; 13 | uint64 queryEventEnd{}; 14 | }; -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteRingBuffer.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/HW/Latte/Core/LatteRingBuffer.h" 2 | 3 | LatteRingBuffer_t* LatteRingBuffer_create(uint8* data, uint32 size) 4 | { 5 | LatteRingBuffer_t* rb = (LatteRingBuffer_t*)malloc(sizeof(LatteRingBuffer_t)); 6 | rb->data = data; 7 | rb->size = size; 8 | rb->writeIndex = 0; 9 | return rb; 10 | } 11 | 12 | uint8* LatteRingBuffer_allocate(LatteRingBuffer_t* rb, sint32 size, sint32 alignment) 13 | { 14 | #ifdef CEMU_DEBUG_ASSERT 15 | cemu_assert_debug(size < rb->size); 16 | #endif 17 | // align 18 | rb->writeIndex = (rb->writeIndex + alignment - 1)&~(alignment-1); 19 | // handle wrap-around 20 | if ((rb->writeIndex + size) >= rb->size) 21 | rb->writeIndex = 0; 22 | // allocate range 23 | uint8* data = rb->data + rb->writeIndex; 24 | rb->writeIndex += size; 25 | return data; 26 | } -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteRingBuffer.h: -------------------------------------------------------------------------------- 1 | 2 | typedef struct 3 | { 4 | uint8* data; 5 | sint32 size; 6 | sint32 writeIndex; 7 | }LatteRingBuffer_t; 8 | 9 | LatteRingBuffer_t* LatteRingBuffer_create(uint8* data, uint32 size); 10 | uint8* LatteRingBuffer_allocate(LatteRingBuffer_t* rb, sint32 size, sint32 alignment); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteShaderCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | uint32 LatteShaderCache_getShaderCacheExtraVersion(uint64 titleId); 4 | uint32 LatteShaderCache_getPipelineCacheExtraVersion(uint64 titleId); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteSoftware.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void LatteSoftware_setupVertexShader(struct LatteFetchShader* fetchShader, void* shaderPtr, sint32 size); 4 | void LatteSoftware_executeVertex(sint32 index); 5 | 6 | float* LatteSoftware_getPositionExport(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Core/LatteTiming.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void LatteTiming_setCustomVsyncFrequency(sint32 frequency); 4 | void LatteTiming_disableCustomVsyncFrequency(); 5 | bool LatteTiming_getCustomVsyncFrequency(sint32& customFrequency); 6 | 7 | void LatteTiming_EnableHostDrivenVSync(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Renderer/OpenGL/LatteTextureViewGL.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Cafe/HW/Latte/Core/LatteTexture.h" 4 | #include "Common/GLInclude/GLInclude.h" 5 | 6 | class LatteTextureViewGL : public LatteTextureView 7 | { 8 | public: 9 | LatteTextureViewGL(class LatteTextureGL* texture, Latte::E_DIM dim, Latte::E_GX2SURFFMT format, sint32 firstMip, sint32 mipCount, sint32 firstSlice, sint32 sliceCount, bool registerView = true, bool forceCreateNewTexId = false); 10 | ~LatteTextureViewGL(); 11 | 12 | LatteTextureViewGL* GetAlternativeView(); 13 | 14 | // GL specific states 15 | LatteSamplerState samplerState{}; 16 | uint8 swizzleR; 17 | uint8 swizzleG; 18 | uint8 swizzleB; 19 | uint8 swizzleA; 20 | 21 | GLuint glTexId; 22 | GLint glTexTarget; 23 | sint32 glInternalFormat; 24 | 25 | LatteTextureViewGL* m_alternativeView{ nullptr }; 26 | private: 27 | void InitAliasView(); 28 | }; 29 | -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Renderer/OpenGL/OpenGLTextureReadback.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/HW/Latte/Core/LatteTextureReadbackInfo.h" 3 | #include "Common/GLInclude/GLInclude.h" 4 | 5 | class LatteTextureReadbackInfoGL : public LatteTextureReadbackInfo 6 | { 7 | public: 8 | LatteTextureReadbackInfoGL(LatteTextureView* textureView); 9 | 10 | ~LatteTextureReadbackInfoGL(); 11 | 12 | void StartTransfer() override; 13 | bool IsFinished() override; 14 | 15 | uint8* GetData() override; 16 | void ReleaseData() override; 17 | 18 | private: 19 | GLuint m_texFormatGL; 20 | GLuint m_texDataTypeGL; 21 | 22 | // buffer 23 | GLuint texImageBufferGL = 0; 24 | // sync 25 | GLsync imageCopyFinSync = nullptr; 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Renderer/Vulkan/CocoaSurface.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #if BOOST_OS_MACOS 4 | 5 | #include 6 | 7 | VkSurfaceKHR CreateCocoaSurface(VkInstance instance, void* handle); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/Renderer/Vulkan/VsyncDriver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void VsyncDriver_startThread(void(*cbVSync)()); 4 | void VsyncDriver_notifyWindowPosChanged(); -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/ShaderInfo/ShaderInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/HW/Latte/Core/LatteConst.h" 3 | #include "util/containers/SmallBitset.h" 4 | 5 | namespace Latte 6 | { 7 | class ShaderDescription 8 | { 9 | public: 10 | bool analyzeShaderCode(void* shaderProgram, size_t sizeInBytes, LatteConst::ShaderType shaderType); 11 | 12 | // public data 13 | 14 | // pixel shader only 15 | SmallBitset<8> renderTargetWriteMask; // true if render target is written 16 | 17 | }; 18 | }; -------------------------------------------------------------------------------- /src/Cafe/HW/Latte/ShaderInfo/ShaderInstanceInfo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/Cafe/HW/Latte/ShaderInfo/ShaderInstanceInfo.cpp -------------------------------------------------------------------------------- /src/Cafe/HW/SI/si.h: -------------------------------------------------------------------------------- 1 | 2 | namespace HW_SI 3 | { 4 | void Initialize(); 5 | }; -------------------------------------------------------------------------------- /src/Cafe/HW/VI/VI.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/HW/MMU/MMU.h" 2 | 3 | 4 | namespace HW_VI 5 | { 6 | 7 | RunAtCemuBoot _initVI([]() 8 | { 9 | //MMU::RegisterMMIO_R16(MMU::MMIOInterface::INTERFACE_0C000000, 0x1e0002, VI_UKN1E0002_R16); 10 | }); 11 | } 12 | -------------------------------------------------------------------------------- /src/Cafe/IOSU/ODM/iosu_odm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace iosu 4 | { 5 | namespace odm 6 | { 7 | void Initialize(); 8 | void Shutdown(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/Cafe/IOSU/PDM/iosu_pdm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/IOSU/iosu_types_common.h" 3 | 4 | namespace iosu 5 | { 6 | namespace pdm 7 | { 8 | inline constexpr size_t NUM_PLAY_STATS_ENTRIES = 256; 9 | inline constexpr size_t NUM_PLAY_DIARY_ENTRIES_MAX = 18250; // 0x474A 10 | 11 | struct PlayDiaryEntry 12 | { 13 | uint64be titleId; 14 | uint32be ukn08; // probably minutes 15 | uint16be dayIndex; 16 | uint16be ukn0E; 17 | }; 18 | 19 | uint32 GetDiaryEntries(uint8 accountSlot, PlayDiaryEntry* diaryEntries, uint32 maxEntries); 20 | 21 | /* Helper for UI game list */ 22 | struct GameListStat 23 | { 24 | struct 25 | { 26 | uint32 year; // if 0 -> never played 27 | uint32 month; 28 | uint32 day; 29 | }last_played; 30 | uint32 numMinutesPlayed; 31 | }; 32 | 33 | bool GetStatForGamelist(uint64 titleId, GameListStat& stat); 34 | 35 | IOSUModule* GetModule(); 36 | }; 37 | }; -------------------------------------------------------------------------------- /src/Cafe/IOSU/ccr_nfc/iosu_ccr_nfc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/IOSU/iosu_types_common.h" 3 | 4 | #define CCR_NFC_ERROR (-0x2F001E) 5 | #define CCR_NFC_INVALID_LOCKED_SECRET (-0x2F0029) 6 | #define CCR_NFC_INVALID_UNFIXED_INFOS (-0x2F002A) 7 | 8 | namespace iosu 9 | { 10 | namespace ccr_nfc 11 | { 12 | struct CCRNFCCryptData 13 | { 14 | uint32 version; 15 | uint32 dataSize; 16 | uint32 seedOffset; 17 | uint32 keyGenSaltOffset; 18 | uint32 uuidOffset; 19 | uint32 unfixedInfosOffset; 20 | uint32 unfixedInfosSize; 21 | uint32 lockedSecretOffset; 22 | uint32 lockedSecretSize; 23 | uint32 unfixedInfosHmacOffset; 24 | uint32 lockedSecretHmacOffset; 25 | uint8 data[540]; 26 | }; 27 | static_assert(sizeof(CCRNFCCryptData) == 0x248); 28 | 29 | IOSUModule* GetModule(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Cafe/OS/RPL/rpl_debug_symbols.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/RPL/rpl_debug_symbols.h" 2 | 3 | std::map map_DebugSymbols; 4 | 5 | void rplDebugSymbol_createComment(MPTR address, const wchar_t* comment) 6 | { 7 | auto new_comment = new rplDebugSymbolComment(); 8 | new_comment->type = RplDebugSymbolComment; 9 | new_comment->comment = comment; 10 | map_DebugSymbols[address] = new_comment; 11 | } 12 | 13 | rplDebugSymbolBase* rplDebugSymbol_getForAddress(MPTR address) 14 | { 15 | return map_DebugSymbols[address]; 16 | } 17 | 18 | const std::map& rplDebugSymbol_getSymbols() 19 | { 20 | return map_DebugSymbols; 21 | } -------------------------------------------------------------------------------- /src/Cafe/OS/RPL/rpl_debug_symbols.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | enum RplDebugSymbolType : uint8 5 | { 6 | RplDebugSymbolComment = 0, 7 | }; 8 | 9 | struct rplDebugSymbolBase 10 | { 11 | RplDebugSymbolType type; 12 | rplDebugSymbolBase* next; 13 | }; 14 | 15 | struct rplDebugSymbolComment : rplDebugSymbolBase 16 | { 17 | std::wstring comment; 18 | }; 19 | 20 | 21 | void rplDebugSymbol_createComment(MPTR address, const wchar_t* comment); 22 | rplDebugSymbolBase* rplDebugSymbol_getForAddress(MPTR address); 23 | const std::map& rplDebugSymbol_getSymbols(); -------------------------------------------------------------------------------- /src/Cafe/OS/RPL/rpl_symbol_storage.h: -------------------------------------------------------------------------------- 1 | struct RPLStoredSymbol 2 | { 3 | MPTR address; 4 | void* libName; 5 | void* symbolName; 6 | uint32 flags; 7 | }; 8 | 9 | void rplSymbolStorage_init(); 10 | void rplSymbolStorage_unloadAll(); 11 | RPLStoredSymbol* rplSymbolStorage_store(const char* libName, const char* symbolName, MPTR address); 12 | void rplSymbolStorage_remove(RPLStoredSymbol* storedSymbol); 13 | void rplSymbolStorage_removeRange(MPTR address, sint32 length); 14 | RPLStoredSymbol* rplSymbolStorage_getByAddress(MPTR address); 15 | RPLStoredSymbol* rplSymbolStorage_getByClosestAddress(MPTR address); 16 | void rplSymbolStorage_createJumpProxySymbol(MPTR jumpAddress, MPTR destAddress); 17 | 18 | std::unordered_map& rplSymbolStorage_lockSymbolMap(); 19 | void rplSymbolStorage_unlockSymbolMap(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/avm/avm.h: -------------------------------------------------------------------------------- 1 | 2 | namespace avm 3 | { 4 | void Initialize(); 5 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/camera/camera.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace camera 4 | { 5 | 6 | sint32 CAMOpen(sint32 camHandle); 7 | sint32 CAMClose(sint32 camHandle); 8 | 9 | void load(); 10 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_BSP.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | #include "coreinit_BSP.h" 3 | 4 | namespace coreinit 5 | { 6 | bool bspGetHardwareVersion(uint32be* version) 7 | { 8 | uint8 highVersion = 0x11; // anything below 0x11 will be considered as Hollywood 9 | // todo: Check version returned on console 10 | uint32 tempVers = highVersion << 24; 11 | *version = tempVers; 12 | return true; 13 | } 14 | 15 | void InitializeBSP() 16 | { 17 | cafeExportRegister("coreinit", bspGetHardwareVersion, LogType::Placeholder); 18 | } 19 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_BSP.h: -------------------------------------------------------------------------------- 1 | namespace coreinit 2 | { 3 | void InitializeBSP(); 4 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_CodeGen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void OSGetCodegenVirtAddrRangeInternal(uint32& rangeStart, uint32& rangeSize); 6 | void codeGenHandleICBI(uint32 ea); 7 | bool codeGenShouldAvoid(); 8 | 9 | void InitializeCodeGen(); 10 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_Coroutine.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | struct OSCoroutine 6 | { 7 | /* +0x00 */ uint32 lr; 8 | /* +0x04 */ uint32 cr; 9 | /* +0x08 */ uint32 gqr1; 10 | /* +0x0C */ uint32 r1; // stack pointer 11 | /* +0x10 */ uint32 r2; 12 | /* +0x14 */ uint32 r13; 13 | /* +0x18 */ uint32 gpr[18]; 14 | uint64 fpr[18]; 15 | uint64 psr[18]; 16 | }; 17 | 18 | static_assert(sizeof(OSCoroutine) == 0x180); 19 | 20 | void InitializeCoroutine(); 21 | } 22 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_DynLoad.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | enum class RplEntryReason 6 | { 7 | Loaded = 1, 8 | Unloaded = 2, 9 | }; 10 | 11 | uint32 OSDynLoad_SetAllocator(MPTR allocFunc, MPTR freeFunc); 12 | void OSDynLoad_SetTLSAllocator(MPTR allocFunc, MPTR freeFunc); 13 | uint32 OSDynLoad_GetAllocator(betype* funcAlloc, betype* funcFree); 14 | void OSDynLoad_GetTLSAllocator(betype* funcAlloc, betype* funcFree); 15 | 16 | void* OSDynLoad_AllocatorAlloc(sint32 size, sint32 alignment); 17 | void OSDynLoad_AllocatorFree(void* mem); 18 | 19 | uint32 OSDynLoad_Acquire(const char* libName, uint32be* moduleHandleOut); 20 | void OSDynLoad_Release(uint32 moduleHandle); 21 | uint32 OSDynLoad_FindExport(uint32 moduleHandle, uint32 isData, const char* exportName, betype* addrOut); 22 | 23 | void InitializeDynLoad(); 24 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_FG.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void __OSClearCopyData(); 6 | uint32 __OSGetCopyDataSize(); 7 | uint8* __OSGetCopyDataPtr(); 8 | bool __OSAppendCopyData(uint8* data, sint32 length); 9 | bool __OSResizeCopyData(sint32 length); 10 | 11 | bool OSGetForegroundBucket(MEMPTR* offset, uint32be* size); 12 | bool OSGetForegroundBucketFreeArea(MEMPTR* offset, uint32be* size); 13 | 14 | void InitForegroundBucket(); 15 | 16 | void InitializeFG(); 17 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_GHS.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void PrepareGHSRuntime(); 6 | 7 | sint32be* __gh_errno_ptr(); 8 | void __gh_set_errno(sint32 errNo); 9 | sint32 __gh_get_errno(); 10 | 11 | void InitializeGHS(); 12 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_HWInterface.h: -------------------------------------------------------------------------------- 1 | namespace coreinit 2 | { 3 | void InitializeHWInterface(); 4 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_IM.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void InitializeIM(); 6 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_IOS.h: -------------------------------------------------------------------------------- 1 | // IOS 2 | typedef struct _ioBufferVector_t ioBufferVector_t; 3 | 4 | sint32 __depr__IOS_Open(char* path, uint32 mode); 5 | sint32 __depr__IOS_Ioctl(uint32 fd, uint32 request, void* inBuffer, uint32 inSize, void* outBuffer, uint32 outSize); 6 | sint32 __depr__IOS_Ioctlv(uint32 fd, uint32 request, uint32 countIn, uint32 countOut, ioBufferVector_t* ioBufferVectors); 7 | sint32 __depr__IOS_Close(uint32 fd); 8 | 9 | // superseded by coreinit_IPC.h -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_LockedCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void InitializeLC(); 6 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_MEM_UnitHeap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/OS/libs/coreinit/coreinit_MEM.h" 3 | 4 | namespace coreinit 5 | { 6 | struct MEMUnitHeapBlock 7 | { 8 | MEMPTR nextBlock; 9 | }; 10 | static_assert(sizeof(MEMUnitHeapBlock) == 4); 11 | 12 | struct MEMUnitHeap : public MEMHeapBase 13 | { 14 | /* +0x34 */ uint32 padding034; 15 | /* +0x38 */ uint32 padding038; 16 | /* +0x3C */ uint32 padding03C; 17 | /* +0x40 */ MEMPTR firstFreeBlock; 18 | /* +0x44 */ uint32be blockSize; 19 | }; 20 | static_assert(sizeof(MEMUnitHeap) == 0x48); 21 | 22 | MEMHeapBase* MEMCreateUnitHeapEx(void* memStart, uint32 heapSize, uint32 memBlockSize, uint32 alignment, uint32 createFlags); 23 | void* MEMDestroyUnitHeap(MEMHeapHandle hHeap); 24 | } 25 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_Memory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void InitializeMemory(); 6 | 7 | void OSGetMemBound(sint32 memType, MEMPTR* offsetOutput, uint32be* sizeOutput); 8 | 9 | void* OSBlockMove(MEMPTR dst, MEMPTR src, uint32 size, bool flushDC); 10 | void* OSBlockSet(MEMPTR dst, uint32 value, uint32 size); 11 | 12 | void OSMemoryBarrier(); 13 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_MemoryMapping.h: -------------------------------------------------------------------------------- 1 | 2 | namespace coreinit 3 | { 4 | void InitializeMemoryMapping(); 5 | } 6 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_OSScreen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void InitializeOSScreen(); 6 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_OverlayArena.h: -------------------------------------------------------------------------------- 1 | namespace coreinit 2 | { 3 | void InitializeOverlayArena(); 4 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_Scheduler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void __OSLockScheduler(void* obj = nullptr); 4 | bool __OSHasSchedulerLock(); 5 | bool __OSTryLockScheduler(void* obj = nullptr); 6 | void __OSUnlockScheduler(void* obj = nullptr); 7 | 8 | namespace coreinit 9 | { 10 | uint32 OSIsInterruptEnabled(); 11 | uint32 OSDisableInterrupts(); 12 | uint32 OSRestoreInterrupts(uint32 interruptMask); 13 | uint32 OSEnableInterrupts(); 14 | 15 | void InitializeSchedulerLock(); 16 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_SysHeap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace coreinit 4 | { 5 | void InitSysHeap(); 6 | 7 | void* OSAllocFromSystem(uint32 size, uint32 alignment); 8 | void OSFreeToSystem(void* ptr); 9 | 10 | void InitializeSysHeap(); 11 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_SystemInfo.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | #include "Cafe/OS/libs/coreinit/coreinit_SystemInfo.h" 3 | 4 | namespace coreinit 5 | { 6 | SysAllocator g_system_info; 7 | 8 | const OSSystemInfo& OSGetSystemInfo() 9 | { 10 | return *g_system_info.GetPtr(); 11 | } 12 | 13 | void InitializeSystemInfo() 14 | { 15 | cemu_assert(ppcCyclesSince2000 != 0); 16 | g_system_info->busClock = ESPRESSO_BUS_CLOCK; 17 | g_system_info->coreClock = ESPRESSO_CORE_CLOCK; 18 | g_system_info->ticksSince2000 = ESPRESSO_CORE_CLOCK_TO_TIMER_CLOCK(ppcCyclesSince2000); 19 | g_system_info->l2cacheSize[0] = 512*1024; // 512KB // 512KB 20 | g_system_info->l2cacheSize[1] = 2*1024*1924; // 2MB 21 | g_system_info->l2cacheSize[2] = 512*1024; // 512KB 22 | g_system_info->coreClockToBusClockRatio = 5; 23 | cafeExportRegister("coreinit", OSGetSystemInfo, LogType::Placeholder); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/coreinit/coreinit_SystemInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/OS/libs/coreinit/coreinit.h" 3 | 4 | namespace coreinit 5 | { 6 | struct OSSystemInfo 7 | { 8 | uint32be busClock; 9 | uint32be coreClock; 10 | uint64be ticksSince2000; 11 | uint32be l2cacheSize[PPC_CORE_COUNT]; 12 | uint32be coreClockToBusClockRatio; 13 | }; 14 | 15 | static_assert(sizeof(OSSystemInfo) == 0x20); 16 | 17 | const OSSystemInfo& OSGetSystemInfo(); 18 | 19 | void InitializeSystemInfo(); 20 | }; 21 | 22 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/dmae/dmae.h: -------------------------------------------------------------------------------- 1 | void dmae_load(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/drmapp/drmapp.h: -------------------------------------------------------------------------------- 1 | 2 | namespace drmapp 3 | { 4 | void Initialize(); 5 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/erreula/erreula.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn 4 | { 5 | namespace erreula 6 | { 7 | void render(bool mainWindow); 8 | 9 | void load(); 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Blit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace GX2 4 | { 5 | enum class GX2ClearFlags : uint32 6 | { 7 | CLEAR_DEPTH = 0x01, // clear depth to given clear value 8 | CLEAR_STENCIL = 0x02, // clear stencil to given stencil clear value 9 | SET_DEPTH_REG = 0x04, // 10 | SET_STENCIL_REG = 0x08, 11 | }; 12 | 13 | void GX2BlitInit(); 14 | } 15 | ENABLE_BITMASK_OPERATORS(GX2::GX2ClearFlags); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Draw.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/HW/Latte/ISA/LatteReg.h" 3 | 4 | namespace GX2 5 | { 6 | using GX2IndexType = Latte::LATTE_VGT_DMA_INDEX_TYPE::E_INDEX_TYPE; 7 | using GX2PrimitiveMode2 = Latte::LATTE_VGT_PRIMITIVE_TYPE::E_PRIMITIVE_TYPE; 8 | 9 | void GX2SetAttribBuffer(uint32 bufferIndex, uint32 sizeInBytes, uint32 stride, void* data); 10 | void GX2DrawIndexedEx(GX2PrimitiveMode2 primitiveMode, uint32 count, GX2IndexType indexType, void* indexData, uint32 baseVertex, uint32 numInstances); 11 | 12 | void GX2DrawInit(); 13 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Event.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace GX2 4 | { 5 | void GX2Init_event(); 6 | void GX2EventResetToDefaultState(); 7 | 8 | void GX2EventInit(); 9 | void GX2WaitForVsync(); 10 | void GX2WaitForFlip(); 11 | void GX2DrawDone(); 12 | 13 | enum class GX2CallbackEventType 14 | { 15 | TIMESTAMP_TOP = 0, 16 | TIMESTAMP_BOTTOM = 1, 17 | VSYNC = 2, 18 | FLIP = 3, 19 | // 4 is buffer overrun? 20 | }; 21 | inline constexpr size_t GX2CallbackEventTypeCount = 5; 22 | 23 | // notification callbacks for GPU 24 | void __GX2NotifyNewRetirementTimestamp(uint64 tsRetire); 25 | void __GX2NotifyEvent(GX2CallbackEventType eventType); 26 | 27 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Memory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace GX2 4 | { 5 | void GX2MEMAllocatorsInit(); 6 | 7 | void GX2MemInit(); 8 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Misc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace GX2 4 | { 5 | extern uint32 sGX2MainCoreIndex; 6 | 7 | enum class E_TVRES 8 | { 9 | TODO, 10 | }; 11 | 12 | enum class E_TVBUFFERMODE 13 | { 14 | DOUBLE_BUFFER = 2, 15 | }; 16 | 17 | void _GX2DriverReset(); 18 | 19 | void GX2SetTVBuffer(void* imageBuffePtr, uint32 imageBufferSize, E_TVRES tvResolutionMode, uint32 surfaceFormat, E_TVBUFFERMODE bufferMode); 20 | void GX2SetTVGamma(float gamma); 21 | 22 | void GX2Invalidate(uint32 invalidationFlags, MPTR invalidationAddr, uint32 invalidationSize); 23 | 24 | void GX2MiscInit(); 25 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Query.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define GX2_QUERY_TYPE_OCCLUSION_CPU 0 4 | #define GX2_QUERY_TYPE_OCCLUSION_GPU 2 5 | // 1 and 3 are streamout related? 6 | 7 | namespace GX2 8 | { 9 | void GX2QueryInit(); 10 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Streamout.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "GX2_Resource.h" 3 | 4 | #define GX2_MAX_STREAMOUT_BUFFERS 4 5 | 6 | namespace GX2 7 | { 8 | struct GX2StreamOutBuffer 9 | { 10 | /* +0x00 */ uint32be size; // size of buffer (if dataPtr is not NULL) 11 | /* +0x04 */ MEMPTR dataPtr; 12 | /* +0x08 */ uint32be vertexStride; 13 | /* +0x0C */ GX2RBuffer rBuffer; // if dataPtr is NULL, use this as the buffer and size 14 | /* +0x1C */ MEMPTR ctxPtr; // stream out context 15 | }; 16 | 17 | static_assert(sizeof(GX2StreamOutBuffer) == 0x20, "GX2StreamOutBuffer_t has invalid size"); 18 | 19 | void GX2SetStreamOutBuffer(uint32 bufferIndex, GX2StreamOutBuffer* streamOutBuffer); 20 | void GX2StreamoutInit(); 21 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/gx2/GX2_Surface_Copy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace GX2 4 | { 5 | void GX2SurfaceCopyInit(); 6 | }; 7 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/h264_avc/h264dec.h: -------------------------------------------------------------------------------- 1 | namespace H264 2 | { 3 | void Initialize(); 4 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/mic/mic.h: -------------------------------------------------------------------------------- 1 | bool mic_isActive(uint32 drcIndex); 2 | void mic_updateOnAXFrame(); 3 | 4 | namespace mic 5 | { 6 | void Initialize(); 7 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nfc/TLV.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | class TLV 8 | { 9 | public: 10 | enum Tag 11 | { 12 | TAG_NULL = 0x00, 13 | TAG_LOCK_CTRL = 0x01, 14 | TAG_MEM_CTRL = 0x02, 15 | TAG_NDEF = 0x03, 16 | TAG_PROPRIETARY = 0xFD, 17 | TAG_TERMINATOR = 0xFE, 18 | }; 19 | 20 | public: 21 | TLV(); 22 | TLV(Tag tag, std::vector value); 23 | virtual ~TLV(); 24 | 25 | static std::vector FromBytes(const std::span& data); 26 | std::vector ToBytes() const; 27 | 28 | Tag GetTag() const; 29 | const std::vector& GetValue() const; 30 | 31 | void SetTag(Tag tag); 32 | void SetValue(const std::span& value); 33 | 34 | private: 35 | Tag mTag; 36 | std::vector mValue; 37 | }; 38 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nlibcurl/nlibcurl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nlibcurl 4 | { 5 | void load(); 6 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nlibnss/nlibnss.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nlibnss 4 | { 5 | void load(); 6 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_ac/nn_ac.h: -------------------------------------------------------------------------------- 1 | void nnAc_load(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_acp/nn_acp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/IOSU/legacy/iosu_acp.h" 3 | 4 | namespace nn 5 | { 6 | namespace acp 7 | { 8 | enum ACPStatus : uint32 9 | { 10 | SUCCESS = 0, 11 | }; 12 | 13 | using ACPDeviceType = iosu::acp::ACPDeviceType; 14 | 15 | ACPStatus ACPGetApplicationBox(uint32be* applicationBox, uint64 titleId); 16 | ACPStatus ACPMountSaveDir(); 17 | ACPStatus ACPUnmountSaveDir(); 18 | ACPStatus ACPCreateSaveDir(uint32 persistentId, iosu::acp::ACPDeviceType type); 19 | ACPStatus ACPUpdateSaveTimeStamp(uint32 persistentId, uint64 titleId, iosu::acp::ACPDeviceType deviceType); 20 | 21 | void load(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_aoc/nn_aoc.h: -------------------------------------------------------------------------------- 1 | namespace nn 2 | { 3 | namespace aoc 4 | { 5 | void Initialize(); 6 | } 7 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_boss/nn_boss.h: -------------------------------------------------------------------------------- 1 | void nnBoss_load(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_ccr/nn_ccr.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | #include "nn_ccr.h" 3 | 4 | namespace nn::ccr 5 | { 6 | sint32 CCRSysCaffeineBootCheck() 7 | { 8 | cemuLog_logDebug(LogType::Force, "CCRSysCaffeineBootCheck()"); 9 | return -1; 10 | } 11 | 12 | void Initialize() 13 | { 14 | cafeExportRegister("nn_ccr", CCRSysCaffeineBootCheck, LogType::Placeholder); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_ccr/nn_ccr.h: -------------------------------------------------------------------------------- 1 | 2 | namespace nn::ccr 3 | { 4 | void Initialize(); 5 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_cmpt/nn_cmpt.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | #include "nn_cmpt.h" 3 | 4 | namespace nn::cmpt 5 | { 6 | uint32 CMPTAcctGetPcConf(uint32be* pcConf) 7 | { 8 | cemuLog_logDebug(LogType::Force, "CMPTAcctGetPcConf() - todo"); 9 | pcConf[0] = 0; 10 | pcConf[1] = 0; 11 | pcConf[2] = 0; 12 | return 0; 13 | } 14 | 15 | uint32 CMPTGetDataSize(uint32be* sizeOut) 16 | { 17 | *sizeOut = 0xC0000; 18 | return 0; 19 | } 20 | 21 | void Initialize() 22 | { 23 | cafeExportRegister("nn_cmpt", CMPTAcctGetPcConf, LogType::Placeholder); 24 | cafeExportRegister("nn_cmpt", CMPTGetDataSize, LogType::Placeholder); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_cmpt/nn_cmpt.h: -------------------------------------------------------------------------------- 1 | 2 | namespace nn::cmpt 3 | { 4 | void Initialize(); 5 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_ec/nn_ec.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | 3 | typedef struct 4 | { 5 | /* +0x00 */ uint8 ukn00[0x10]; 6 | /* +0x10 */ uint8 ukn10[0x0C]; 7 | /* +0x2C */ uint8 ukn2C[0x10]; // currency string? 8 | /* +0x3C */ uint32 ukn3C; // money amount? 9 | // size of struct is 0x40 10 | }nnEcUknMoneyStruct_t; 11 | 12 | void nnEcExport___ct__Q3_2nn2ec5MoneyFPCcN21(PPCInterpreter_t* hCPU) 13 | { 14 | debug_printf("nn_ec.__ct__Q3_2nn2ec5MoneyFPCcN21(0x%08x, ...)\n", hCPU->gpr[3]); 15 | nnEcUknMoneyStruct_t* moneyStruct = (nnEcUknMoneyStruct_t*)memory_getPointerFromVirtualOffset(hCPU->gpr[3]); 16 | // todo -> Setup struct 17 | osLib_returnFromFunction(hCPU, memory_getVirtualOffsetFromPointer(moneyStruct)); 18 | } 19 | 20 | /* 21 | * Load E commerce functions (E-Shop stuff) 22 | */ 23 | void nnEc_load() 24 | { 25 | osLib_addFunction("nn_ec", "__ct__Q3_2nn2ec5MoneyFPCcN21", nnEcExport___ct__Q3_2nn2ec5MoneyFPCcN21); 26 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_ec/nn_ec.h: -------------------------------------------------------------------------------- 1 | void nnEc_load(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_fp/nn_fp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | namespace nn 3 | { 4 | namespace fp 5 | { 6 | void load(); 7 | } 8 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_idbe/nn_idbe.h: -------------------------------------------------------------------------------- 1 | 2 | namespace nn 3 | { 4 | namespace idbe 5 | { 6 | void load(); 7 | } 8 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_ndm/nn_ndm.h: -------------------------------------------------------------------------------- 1 | namespace nn 2 | { 3 | namespace ndm 4 | { 5 | void load(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_nfp/nn_nfp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn::nfp 4 | { 5 | uint32 NFCGetTagInfo(uint32 index, uint32 timeout, MPTR functionPtr, void* userParam); 6 | 7 | void load(); 8 | } 9 | 10 | void nnNfp_load(); 11 | void nnNfp_update(); 12 | 13 | bool nnNfp_isInitialized(); 14 | bool nnNfp_touchNfcTagFromFile(const fs::path& filePath, uint32* nfcError); 15 | 16 | #define NFP_STATE_NONE (0) 17 | #define NFP_STATE_INIT (1) 18 | #define NFP_STATE_RW_SEARCH (2) 19 | #define NFP_STATE_RW_ACTIVE (3) 20 | #define NFP_STATE_RW_DEACTIVE (4) 21 | #define NFP_STATE_RW_MOUNT (5) 22 | #define NFP_STATE_UNEXPECTED (6) 23 | #define NFP_STATE_RW_MOUNT_ROM (7) 24 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_nim/nn_nim.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn 4 | { 5 | namespace nim 6 | { 7 | void load(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_olv/nn_olv.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Cafe/OS/common/OSCommon.h" 4 | #include "Cafe/OS/libs/nn_common.h" 5 | #include "Cafe/OS/libs/nn_act/nn_act.h" 6 | #include "Cafe/CafeSystem.h" 7 | #include "Cemu/napi/napi.h" 8 | 9 | #include "nn_olv_Common.h" 10 | 11 | namespace nn 12 | { 13 | namespace olv 14 | { 15 | 16 | extern ParamPackStorage g_ParamPack; 17 | extern DiscoveryResultStorage g_DiscoveryResults; 18 | 19 | sint32 GetOlvAccessKey(uint32_t* pOutKey); 20 | 21 | void load(); 22 | void unload(); 23 | } 24 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_olv/nn_olv_OfflineDB.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/OS/libs/nn_common.h" 3 | #include "nn_olv_Common.h" 4 | 5 | namespace nn 6 | { 7 | namespace olv 8 | { 9 | void OfflineDB_Init(); 10 | void OfflineDB_Shutdown(); 11 | 12 | nnResult OfflineDB_DownloadPostDataListParam_DownloadPostDataList(DownloadedTopicData* downloadedTopicData, DownloadedPostData* downloadedPostData, uint32be* postCountOut, uint32 maxCount, DownloadPostDataListParam* param); 13 | nnResult OfflineDB_DownloadPostDataListParam_DownloadExternalImageData(DownloadedDataBase* _this, void* imageDataOut, uint32be* imageSizeOut, uint32 maxSize); 14 | 15 | } 16 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_pdm/nn_pdm.h: -------------------------------------------------------------------------------- 1 | namespace nn 2 | { 3 | namespace pdm 4 | { 5 | void Initialize(); 6 | }; 7 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_save/nn_save.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn 4 | { 5 | namespace save 6 | { 7 | void load(); 8 | void ResetToDefaultState(); 9 | 10 | bool GetPersistentIdEx(uint8 accountSlot, uint32* persistentId); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_sl/nn_sl.h: -------------------------------------------------------------------------------- 1 | void nnSL_load(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_spm/nn_spm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn 4 | { 5 | namespace spm 6 | { 7 | void load(); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_temp/nn_temp.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | 3 | namespace nn::temp 4 | { 5 | uint64 tempIdGenerator = 0xdc1b04bd961f2c04ULL; 6 | 7 | void nnTempExport_TEMPCreateAndInitTempDir(PPCInterpreter_t* hCPU) 8 | { 9 | cemuLog_logDebug(LogType::Force, "TEMPCreateAndInitTempDir(...) - placeholder"); 10 | 11 | // create random temp id 12 | memory_writeU64(hCPU->gpr[5], tempIdGenerator); 13 | tempIdGenerator = (tempIdGenerator << 3) | (tempIdGenerator >> 61); 14 | tempIdGenerator += 0x56e28bd5f4ULL; 15 | 16 | osLib_returnFromFunction(hCPU, 0); 17 | } 18 | 19 | void Initialize() 20 | { 21 | osLib_addFunction("nn_temp", "TEMPCreateAndInitTempDir", nnTempExport_TEMPCreateAndInitTempDir); 22 | } 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_temp/nn_temp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn::temp 4 | { 5 | void Initialize(); 6 | }; -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_uds/nn_uds.cpp: -------------------------------------------------------------------------------- 1 | #include "Cafe/OS/common/OSCommon.h" 2 | 3 | typedef struct 4 | { 5 | uint32 reserved; 6 | }udsWorkspace_t; 7 | 8 | udsWorkspace_t* udsWorkspace = NULL; 9 | 10 | void nnUdsExport___sti___11_uds_Api_cpp_f5d9abb2(PPCInterpreter_t* hCPU) 11 | { 12 | debug_printf("__sti___11_uds_Api_cpp_f5d9abb2()\n"); 13 | if( udsWorkspace == NULL ) 14 | udsWorkspace = (udsWorkspace_t*)memory_getPointerFromVirtualOffset(coreinit_allocFromSysArea(32, 32)); 15 | osLib_returnFromFunction(hCPU, memory_getVirtualOffsetFromPointer(udsWorkspace)); 16 | } 17 | 18 | /* 19 | * Load UDS functions 20 | */ 21 | void nnUds_load() 22 | { 23 | osLib_addFunction("nn_uds", "__sti___11_uds_Api_cpp_f5d9abb2", nnUdsExport___sti___11_uds_Api_cpp_f5d9abb2); 24 | } 25 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nn_uds/nn_uds.h: -------------------------------------------------------------------------------- 1 | void nnUds_load(); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nsyshid/AttachDefaultBackends.cpp: -------------------------------------------------------------------------------- 1 | #include "nsyshid.h" 2 | #include "Backend.h" 3 | #include "BackendEmulated.h" 4 | #include "BackendLibusb.h" 5 | 6 | namespace nsyshid::backend 7 | { 8 | void AttachDefaultBackends() 9 | { 10 | // add libusb backend 11 | { 12 | auto backendLibusb = std::make_shared(); 13 | if (backendLibusb->IsInitialisedOk()) 14 | { 15 | AttachBackend(backendLibusb); 16 | } 17 | } 18 | // add emulated backend 19 | { 20 | auto backendEmulated = std::make_shared(); 21 | if (backendEmulated->IsInitialisedOk()) 22 | { 23 | AttachBackend(backendEmulated); 24 | } 25 | } 26 | } 27 | } // namespace nsyshid::backend 28 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nsyshid/BackendEmulated.h: -------------------------------------------------------------------------------- 1 | #include "nsyshid.h" 2 | #include "Backend.h" 3 | 4 | namespace nsyshid::backend::emulated 5 | { 6 | class BackendEmulated : public nsyshid::Backend { 7 | public: 8 | BackendEmulated(); 9 | ~BackendEmulated(); 10 | 11 | bool IsInitialisedOk() override; 12 | 13 | protected: 14 | void AttachVisibleDevices() override; 15 | }; 16 | } // namespace nsyshid::backend::emulated 17 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nsyshid/Whitelist.h: -------------------------------------------------------------------------------- 1 | #ifndef CEMU_NSYSHID_WHITELIST_H 2 | #define CEMU_NSYSHID_WHITELIST_H 3 | 4 | namespace nsyshid 5 | { 6 | class Whitelist { 7 | public: 8 | static Whitelist& GetInstance(); 9 | 10 | Whitelist(const Whitelist&) = delete; 11 | 12 | Whitelist& operator=(const Whitelist&) = delete; 13 | 14 | bool IsDeviceWhitelisted(uint16 vendorId, uint16 productId); 15 | 16 | void AddDevice(uint16 vendorId, uint16 productId); 17 | 18 | void RemoveDevice(uint16 vendorId, uint16 productId); 19 | 20 | std::list> GetDevices(); 21 | 22 | void RemoveAllDevices(); 23 | 24 | private: 25 | Whitelist(); 26 | 27 | // vendorId, productId 28 | std::list> m_devices; 29 | }; 30 | } // namespace nsyshid 31 | 32 | #endif // CEMU_NSYSHID_WHITELIST_H 33 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nsyshid/nsyshid.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nsyshid 4 | { 5 | class Backend; 6 | 7 | void AttachBackend(const std::shared_ptr& backend); 8 | 9 | void DetachBackend(const std::shared_ptr& backend); 10 | 11 | void load(); 12 | } // namespace nsyshid 13 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/nsyskbd/nsyskbd.h: -------------------------------------------------------------------------------- 1 | namespace nsyskbd 2 | { 3 | void nsyskbd_load(); 4 | } 5 | 6 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/swkbd/swkbd.h: -------------------------------------------------------------------------------- 1 | void swkbd_render(bool mainWindow); 2 | bool swkbd_hasKeyboardInputHook(); 3 | void swkbd_keyInput(uint32 keyCode); 4 | 5 | namespace swkbd 6 | { 7 | void load(); 8 | } 9 | -------------------------------------------------------------------------------- /src/Cafe/OS/libs/sysapp/sysapp.h: -------------------------------------------------------------------------------- 1 | void sysapp_load(); 2 | 3 | uint64 _SYSGetSystemApplicationTitleId(sint32 index); -------------------------------------------------------------------------------- /src/Cafe/OS/libs/zlib125/zlib125.h: -------------------------------------------------------------------------------- 1 | 2 | namespace zlib 3 | { 4 | void load(); 5 | } -------------------------------------------------------------------------------- /src/Cafe/TitleList/AppType.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | enum class APP_TYPE : uint32 4 | { 5 | GAME = 0x80000000, 6 | GAME_UPDATE = 0x0800001B, 7 | GAME_DLC = 0x0800000E, 8 | // data titles 9 | VERSION_DATA_TITLE = 0x10000015, 10 | DRC_FIRMWARE = 0x10000013, 11 | DRC_TEXTURE_ATLAS = 0x1000001A, 12 | }; 13 | 14 | // allow direct comparison with uint32 15 | inline bool operator==(APP_TYPE lhs, uint32 rhs) 16 | { 17 | return static_cast(lhs) == rhs; 18 | } 19 | 20 | inline bool operator==(uint32 lhs, APP_TYPE rhs) 21 | { 22 | return lhs == static_cast(rhs); 23 | } 24 | -------------------------------------------------------------------------------- /src/Cafe/TitleList/SaveInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TitleId.h" 4 | #include "ParsedMetaXml.h" 5 | 6 | class SaveInfo 7 | { 8 | public: 9 | SaveInfo() {}; 10 | SaveInfo(TitleId titleId); 11 | 12 | bool IsValid() const { return m_isValid; } 13 | 14 | TitleId GetTitleId() const { return m_titleId; } 15 | fs::path GetPath() const { return m_path; } 16 | 17 | // meta data 18 | bool ParseMetaData(); 19 | ParsedMetaXml* GetMetaInfo() { return m_parsedMetaXml; } 20 | 21 | private: 22 | static std::string GetStorageSubpathByTitleId(TitleId titleId); 23 | static fs::path GetSavePath(TitleId titleId); 24 | 25 | TitleId m_titleId; 26 | fs::path m_path; 27 | bool m_isValid{false}; 28 | bool m_hasMetaLoaded{false}; 29 | ParsedMetaXml* m_parsedMetaXml{nullptr}; 30 | }; -------------------------------------------------------------------------------- /src/Cafe/TitleList/SaveList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "SaveInfo.h" 4 | 5 | struct CafeSaveListCallbackEvent 6 | { 7 | enum class TYPE 8 | { 9 | SAVE_DISCOVERED, 10 | SAVE_REMOVED, 11 | SCAN_FINISHED, 12 | }; 13 | TYPE eventType; 14 | SaveInfo* saveInfo; 15 | }; 16 | 17 | class CafeSaveList 18 | { 19 | public: 20 | static void Initialize(); 21 | static void SetMLCPath(fs::path mlcPath); 22 | static void Refresh(); 23 | 24 | static SaveInfo GetSaveByTitleId(TitleId titleId); 25 | 26 | // callback 27 | static uint64 RegisterCallback(void(*cb)(CafeSaveListCallbackEvent* evt, void* ctx), void* ctx); // on register, the callback will be invoked for every already known save 28 | static void UnregisterCallback(uint64 id); 29 | 30 | private: 31 | static void RefreshThreadWorker(); 32 | static void DiscoveredSave(SaveInfo* saveInfo); 33 | }; -------------------------------------------------------------------------------- /src/Cemu/DiscordPresence/DiscordPresence.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef ENABLE_DISCORD_RPC 4 | 5 | class DiscordPresence 6 | { 7 | public: 8 | enum State 9 | { 10 | Idling, 11 | Playing, 12 | }; 13 | 14 | DiscordPresence(); 15 | ~DiscordPresence(); 16 | 17 | void UpdatePresence(State state, const std::string& text = {}) const; 18 | void ClearPresence() const; 19 | }; 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/Cemu/Logging/CemuDebugLogging.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // printf-style macros that are only active in non-release builds 4 | 5 | #ifndef CEMU_DEBUG_ASSERT 6 | #define debug_printf(...) 7 | static void debugBreakpoint() { } 8 | #else 9 | #define debug_printf(...) printf(__VA_ARGS__) 10 | static void debugBreakpoint() {} 11 | #endif -------------------------------------------------------------------------------- /src/Cemu/nex/nexThread.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void nexThread_registerService(nexService* service); 4 | bool nexThread_isCurrentThread(); -------------------------------------------------------------------------------- /src/Common/ExceptionHandler/ELFSymbolTable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | class ELFSymbolTable 6 | { 7 | public: 8 | std::string_view OffsetToSymbol(uint64 ptr, uint64& fromStart) const; 9 | 10 | ELFSymbolTable(); 11 | ~ELFSymbolTable(); 12 | private: 13 | uint8* mappedExecutable = nullptr; 14 | size_t mappedExecutableSize = 0; 15 | 16 | Elf64_Ehdr* header = nullptr; 17 | 18 | Elf64_Shdr* shTable = nullptr; 19 | char* shStrTable = nullptr; 20 | 21 | Elf64_Sym* symTable = nullptr; 22 | uint64 symTableLen = 0; 23 | char* strTable = nullptr; 24 | 25 | uint16 FindSection(int type, const std::string_view& name); 26 | 27 | void* SectionPointer (uint16 index); 28 | void* SectionPointer(const Elf64_Shdr& section); 29 | 30 | // ownership of mapped memory, cannot copy. 31 | ELFSymbolTable(const ELFSymbolTable&) = delete; 32 | }; 33 | -------------------------------------------------------------------------------- /src/Common/ExceptionHandler/ExceptionHandler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void ExceptionHandler_Init(); 4 | 5 | bool CrashLog_Create(); 6 | void CrashLog_SetOutputChannels(bool writeToStdErr, bool writeToLogTxt); 7 | void CrashLog_WriteLine(std::string_view text, bool newLine = true); 8 | void CrashLog_WriteHeader(const char* header); 9 | 10 | void ExceptionHandler_LogGeneralInfo(); 11 | -------------------------------------------------------------------------------- /src/Common/FileStream.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Common/precompiled.h" 3 | 4 | #ifdef _WIN32 5 | #include "Common/windows/FileStream_win32.h" 6 | #else 7 | #include "Common/unix/FileStream_unix.h" 8 | #endif 9 | -------------------------------------------------------------------------------- /src/Common/SysAllocator.cpp: -------------------------------------------------------------------------------- 1 | #include "SysAllocator.h" 2 | 3 | void SysAllocatorContainer::Initialize() 4 | { 5 | for (SysAllocatorBase* sysAlloc : m_sysAllocList) 6 | { 7 | sysAlloc->Initialize(); 8 | } 9 | } 10 | 11 | void SysAllocatorContainer::PushSysAllocator(SysAllocatorBase* base) 12 | { 13 | m_sysAllocList.push_back(base); 14 | } 15 | 16 | SysAllocatorContainer& SysAllocatorContainer::GetInstance() 17 | { 18 | static SysAllocatorContainer s_instance; 19 | return s_instance; 20 | } 21 | 22 | SysAllocatorBase::SysAllocatorBase() 23 | { 24 | SysAllocatorContainer::GetInstance().PushSysAllocator(this); 25 | } -------------------------------------------------------------------------------- /src/Common/cpu_features.h: -------------------------------------------------------------------------------- 1 | 2 | #ifdef __GNUC__ 3 | #define ATTRIBUTE_AVX2 __attribute__((target("avx2"))) 4 | #define ATTRIBUTE_SSE41 __attribute__((target("sse4.1"))) 5 | #define ATTRIBUTE_AESNI __attribute__((target("aes"))) 6 | #else 7 | #define ATTRIBUTE_AVX2 8 | #define ATTRIBUTE_SSE41 9 | #define ATTRIBUTE_AESNI 10 | #endif 11 | 12 | class CPUFeaturesImpl 13 | { 14 | public: 15 | CPUFeaturesImpl(); 16 | 17 | std::string GetCPUName(); // empty if not available 18 | std::string GetCommaSeparatedExtensionList(); 19 | 20 | struct 21 | { 22 | bool ssse3{ false }; 23 | bool sse4_1{ false }; 24 | bool avx{ false }; 25 | bool avx2{ false }; 26 | bool lzcnt{ false }; 27 | bool movbe{ false }; 28 | bool bmi2{ false }; 29 | bool aesni{ false }; 30 | bool invariant_tsc{ false }; 31 | }x86; 32 | private: 33 | char m_cpuBrandName[0x40]{ 0 }; 34 | }; 35 | 36 | extern CPUFeaturesImpl g_CPUFeatures; -------------------------------------------------------------------------------- /src/Common/platform.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #if BOOST_OS_WINDOWS 7 | #include "Common/windows/platform.h" 8 | #elif BOOST_OS_LINUX 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include "Common/unix/platform.h" 14 | #elif BOOST_OS_MACOS 15 | #include 16 | #include "Common/unix/platform.h" 17 | #endif 18 | -------------------------------------------------------------------------------- /src/Common/precompiled.cpp: -------------------------------------------------------------------------------- 1 | #include "precompiled.h" -------------------------------------------------------------------------------- /src/Common/socket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #if BOOST_OS_WINDOWS 4 | 5 | #include 6 | typedef int socklen_t; 7 | 8 | #else 9 | 10 | #include 11 | #define SOCKET int 12 | #define closesocket close 13 | #define SOCKET_ERROR -1 14 | #define INVALID_SOCKET -1 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /src/Common/unix/platform.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | uint32_t GetTickCount() 5 | { 6 | #if BOOST_OS_LINUX 7 | struct timespec ts; 8 | clock_gettime(CLOCK_MONOTONIC_RAW, &ts); 9 | return (1000 * ts.tv_sec + ts.tv_nsec / 1000000); 10 | #elif BOOST_OS_MACOS 11 | return clock_gettime_nsec_np(CLOCK_MONOTONIC_RAW) / 1000000; 12 | #endif 13 | 14 | } -------------------------------------------------------------------------------- /src/Common/version.h: -------------------------------------------------------------------------------- 1 | #ifndef EMULATOR_NAME 2 | 3 | #define EMULATOR_NAME "Cemu" 4 | 5 | #define EMULATOR_VERSION_SUFFIX "" 6 | 7 | #define _XSTRINGFY(s) _STRINGFY(s) 8 | #define _STRINGFY(s) #s 9 | 10 | #if EMULATOR_VERSION_MAJOR != 0 11 | #define BUILD_VERSION_WITH_NAME_STRING (EMULATOR_NAME " " _XSTRINGFY(EMULATOR_VERSION_MAJOR) "." _XSTRINGFY(EMULATOR_VERSION_MINOR) EMULATOR_VERSION_SUFFIX) 12 | #define BUILD_VERSION_STRING (_XSTRINGFY(EMULATOR_VERSION_MAJOR) "." _XSTRINGFY(EMULATOR_VERSION_MINOR) EMULATOR_VERSION_SUFFIX) 13 | #else 14 | // no version provided. Only show commit hash 15 | #define BUILD_VERSION_STRING (_XSTRINGFY(EMULATOR_HASH) EMULATOR_VERSION_SUFFIX) 16 | #define BUILD_VERSION_WITH_NAME_STRING (EMULATOR_NAME " " _XSTRINGFY(EMULATOR_HASH) EMULATOR_VERSION_SUFFIX) 17 | #endif 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /src/Common/windows/platform.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | SlimRWLock::SlimRWLock() 4 | { 5 | static_assert(sizeof(m_lock) == sizeof(SRWLOCK)); 6 | RTL_SRWLOCK* srwLock = (RTL_SRWLOCK*)&m_lock; 7 | *srwLock = SRWLOCK_INIT; 8 | //m_lock = { SRWLOCK_INIT }; 9 | } 10 | 11 | void SlimRWLock::LockRead() 12 | { 13 | AcquireSRWLockShared((SRWLOCK*)&m_lock); 14 | } 15 | 16 | void SlimRWLock::UnlockRead() 17 | { 18 | ReleaseSRWLockShared((SRWLOCK*)&m_lock); 19 | } 20 | 21 | void SlimRWLock::LockWrite() 22 | { 23 | AcquireSRWLockExclusive((SRWLOCK*)&m_lock); 24 | } 25 | 26 | void SlimRWLock::UnlockWrite() 27 | { 28 | ReleaseSRWLockExclusive((SRWLOCK*)&m_lock); 29 | } 30 | 31 | uint32_t GetExceptionError() 32 | { 33 | return (uint32_t)GetLastError(); 34 | } -------------------------------------------------------------------------------- /src/Common/windows/platform.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef NOMINMAX 4 | #define NOMINMAX 5 | #endif 6 | #ifndef WIN32_LEAN_AND_MEAN 7 | #define WIN32_LEAN_AND_MEAN 8 | #endif 9 | #include 10 | 11 | #define AF_BLUETOOTH AF_BTH 12 | #define BTPROTO_RFCOMM BT_PORT_ANY 13 | 14 | class SlimRWLock 15 | { 16 | public: 17 | SlimRWLock(); 18 | 19 | void LockRead(); 20 | void UnlockRead(); 21 | void LockWrite(); 22 | void UnlockWrite(); 23 | 24 | private: 25 | /*SRWLOCK*/ void* m_lock; 26 | }; 27 | 28 | uint32_t GetExceptionError(); -------------------------------------------------------------------------------- /src/audio/audioDebuggerWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class AudioDebuggerWindow : public wxFrame 6 | { 7 | public: 8 | AudioDebuggerWindow(wxFrame& parent); 9 | 10 | void OnCloseButton(wxCommandEvent& event); 11 | void OnRefreshButton(wxCommandEvent& event); 12 | void OnClose(wxCloseEvent& event); 13 | void RefreshVoiceList_sndgeneric(); 14 | void RefreshVoiceList(); 15 | void OnRefreshTimer(wxTimerEvent& event); 16 | void OnVoiceListPopupClick(wxCommandEvent &evt); 17 | void OnVoiceListRightClick(wxMouseEvent& event); 18 | 19 | void Close(); 20 | 21 | private: 22 | wxListCtrl* voiceListbox; 23 | wxTimer* refreshTimer; 24 | 25 | wxDECLARE_EVENT_TABLE(); 26 | 27 | 28 | }; -------------------------------------------------------------------------------- /src/audio/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 | -------------------------------------------------------------------------------- /src/config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(CemuConfig 2 | ActiveSettings.cpp 3 | ActiveSettings.h 4 | CemuConfig.cpp 5 | CemuConfig.h 6 | ConfigValue.h 7 | LaunchSettings.cpp 8 | LaunchSettings.h 9 | NetworkSettings.cpp 10 | NetworkSettings.h 11 | XMLConfig.h 12 | ) 13 | 14 | set_property(TARGET CemuConfig PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") 15 | 16 | target_include_directories(CemuConfig PUBLIC "../") 17 | 18 | target_link_libraries(CemuConfig PRIVATE 19 | CemuCafe 20 | CemuCommon 21 | CemuUtil 22 | Boost::headers 23 | Boost::program_options 24 | pugixml::pugixml 25 | ) 26 | 27 | if (ENABLE_WXWIDGETS) 28 | # PUBLIC because wx/language.h is included in CemuConfig.h 29 | # Could be made PRIVATE by using 0 instead of wxLANGUAGE_DEFAULT 30 | target_link_libraries(CemuConfig PUBLIC wx::base wx::core) 31 | endif() 32 | -------------------------------------------------------------------------------- /src/gui/canvas/IRenderCanvas.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | // base class for all render interfaces 6 | class IRenderCanvas 7 | { 8 | public: 9 | IRenderCanvas(bool is_main_window) 10 | : m_is_main_window(is_main_window) {} 11 | 12 | protected: 13 | bool m_is_main_window; 14 | }; -------------------------------------------------------------------------------- /src/gui/canvas/OpenGLCanvas.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "gui/canvas/IRenderCanvas.h" 4 | 5 | wxWindow* GLCanvas_Create(wxWindow* parent, const wxSize& size, bool is_main_window); 6 | bool GLCanvas_MakeCurrent(bool padView); 7 | void GLCanvas_SwapBuffers(bool swapTV, bool swapDRC); 8 | bool GLCanvas_HasPadViewOpen(); -------------------------------------------------------------------------------- /src/gui/canvas/VulkanCanvas.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "gui/canvas/IRenderCanvas.h" 4 | 5 | #include 6 | 7 | #include "Cafe/HW/Latte/Renderer/Vulkan/VulkanAPI.h" 8 | #include 9 | 10 | class VulkanCanvas : public IRenderCanvas, public wxWindow 11 | { 12 | #if BOOST_OS_LINUX && HAS_WAYLAND 13 | std::unique_ptr m_subsurface; 14 | #endif 15 | public: 16 | VulkanCanvas(wxWindow* parent, const wxSize& size, bool is_main_window); 17 | ~VulkanCanvas(); 18 | 19 | private: 20 | 21 | void OnPaint(wxPaintEvent& event); 22 | void OnResize(wxSizeEvent& event); 23 | }; 24 | -------------------------------------------------------------------------------- /src/gui/components/wxInputDraw.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "input/api/ControllerState.h" 4 | #include "util/math/vector2.h" 5 | 6 | #include 7 | 8 | 9 | class wxInputDraw : public wxWindow 10 | { 11 | public: 12 | wxInputDraw(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); 13 | ~wxInputDraw(); 14 | 15 | virtual void OnRender(wxDC& dc); 16 | void SetAxisValue(const glm::vec2& position); 17 | void SetDeadzone(float deadzone); 18 | 19 | private: 20 | void OnPaintEvent(wxPaintEvent& event); 21 | 22 | glm::vec2 m_position{}; 23 | float m_deadzone{0}; 24 | }; 25 | -------------------------------------------------------------------------------- /src/gui/debugger/BreakpointWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "gui/wxcomponents/checkedlistctrl.h" 3 | 4 | class DebuggerWindow2; 5 | 6 | class BreakpointWindow : public wxFrame 7 | { 8 | public: 9 | BreakpointWindow(DebuggerWindow2& parent, const wxPoint& main_position, const wxSize& main_size); 10 | virtual ~BreakpointWindow(); 11 | 12 | void OnMainMove(const wxPoint& position, const wxSize& main_size); 13 | void OnUpdateView(); 14 | void OnGameLoaded(); 15 | 16 | private: 17 | void OnBreakpointToggled(wxListEvent& event); 18 | void OnLeftDClick(wxMouseEvent& event); 19 | void OnRightDown(wxMouseEvent& event); 20 | 21 | void OnContextMenuClick(wxCommandEvent& evt); 22 | void OnContextMenuClickSelected(wxCommandEvent& evt); 23 | 24 | wxCheckedListCtrl* m_breakpoints; 25 | }; -------------------------------------------------------------------------------- /src/gui/debugger/DumpWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "gui/debugger/DumpCtrl.h" 4 | 5 | class DebuggerWindow2; 6 | 7 | class DumpWindow : public wxFrame 8 | { 9 | public: 10 | DumpWindow(DebuggerWindow2& parent, const wxPoint& main_position, const wxSize& main_size); 11 | 12 | void OnMainMove(const wxPoint& position, const wxSize& main_size); 13 | void OnGameLoaded(); 14 | 15 | private: 16 | wxScrolledWindow* m_scrolled_window; 17 | DumpCtrl* m_dump_ctrl; 18 | }; -------------------------------------------------------------------------------- /src/gui/debugger/ModuleWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class DebuggerWindow2; 4 | 5 | class ModuleWindow : public wxFrame 6 | { 7 | public: 8 | ModuleWindow(DebuggerWindow2& parent, const wxPoint& main_position, const wxSize& main_size); 9 | 10 | void OnMainMove(const wxPoint& position, const wxSize& main_size); 11 | void OnGameLoaded(); 12 | 13 | private: 14 | void OnLeftDClick(wxMouseEvent& event); 15 | 16 | wxListView* m_modules; 17 | }; -------------------------------------------------------------------------------- /src/gui/debugger/RegisterCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "gui/components/TextList.h" 3 | #include "Cafe/HW/Espresso/Debugger/Debugger.h" 4 | 5 | class RegisterCtrl : public TextList 6 | { 7 | public: 8 | RegisterCtrl(wxWindow* parent, const wxWindowID& id, const wxPoint& pos, const wxSize& size, long style); 9 | void OnGameLoaded(); 10 | 11 | protected: 12 | void OnDraw(wxDC& dc, sint32 start, sint32 count, const wxPoint& start_position) override; 13 | void OnMouseMove(const wxPoint& position, uint32 line) override; 14 | void OnMouseDClick(const wxPoint& position, uint32 line) override; 15 | 16 | private: 17 | PPCSnapshot m_prev_snapshot; 18 | }; 19 | -------------------------------------------------------------------------------- /src/gui/debugger/RegisterWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/HW/Espresso/Debugger/Debugger.h" 3 | 4 | class DebuggerWindow2; 5 | 6 | class RegisterWindow : public wxFrame 7 | { 8 | public: 9 | RegisterWindow(DebuggerWindow2& parent, const wxPoint& main_position, const wxSize& main_size); 10 | 11 | void OnMainMove(const wxPoint& position, const wxSize& main_size); 12 | void OnUpdateView(); 13 | 14 | private: 15 | void OnMouseDClickEvent(wxMouseEvent& event); 16 | void OnFPViewModePress(wxCommandEvent& event); 17 | void OnValueContextMenu(wxContextMenuEvent& event); 18 | void OnValueContextMenuSelected(wxCommandEvent& event); 19 | 20 | void UpdateIntegerRegister(wxTextCtrl* label, wxTextCtrl* value, uint32 registerValue, bool hasChanged); 21 | 22 | PPCSnapshot m_prev_snapshot; 23 | bool m_show_double_values; 24 | 25 | wxTextCtrl* m_context_ctrl; 26 | }; -------------------------------------------------------------------------------- /src/gui/debugger/SymbolCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class SymbolListCtrl : public wxListCtrl 6 | { 7 | public: 8 | SymbolListCtrl(wxWindow* parent, const wxWindowID& id, const wxPoint& pos, const wxSize& size); 9 | void OnGameLoaded(); 10 | 11 | void ChangeListFilter(std::string filter); 12 | private: 13 | struct SymbolItem { 14 | SymbolItem() = default; 15 | SymbolItem(wxString name, wxString libName, wxString searchName, bool visible) : name(name), libName(libName), searchName(searchName), visible(visible) {} 16 | 17 | 18 | wxString name; 19 | wxString libName; 20 | wxString searchName; 21 | bool visible; 22 | }; 23 | 24 | std::map m_data; 25 | wxString m_list_filter; 26 | 27 | wxString OnGetItemText(long item, long column) const; 28 | void OnLeftDClick(wxListEvent& event); 29 | void OnRightClick(wxListEvent& event); 30 | }; 31 | -------------------------------------------------------------------------------- /src/gui/debugger/SymbolWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "gui/debugger/SymbolCtrl.h" 4 | 5 | class DebuggerWindow2; 6 | 7 | class SymbolWindow : public wxFrame 8 | { 9 | public: 10 | SymbolWindow(DebuggerWindow2& parent, const wxPoint& main_position, const wxSize& main_size); 11 | 12 | void OnMainMove(const wxPoint& position, const wxSize& main_size); 13 | void OnGameLoaded(); 14 | 15 | void OnLeftDClick(wxListEvent& event); 16 | 17 | private: 18 | wxTextCtrl* m_filter; 19 | SymbolListCtrl* m_symbol_ctrl; 20 | 21 | void OnFilterChanged(wxCommandEvent& event); 22 | }; -------------------------------------------------------------------------------- /src/gui/dialogs/CreateAccount/wxCreateAccountDialog.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | class wxCreateAccountDialog : public wxDialog 5 | { 6 | public: 7 | wxCreateAccountDialog(wxWindow* parent); 8 | 9 | [[nodiscard]] uint32 GetPersistentId() const; 10 | [[nodiscard]] wxString GetMiiName() const; 11 | private: 12 | class wxTextCtrl* m_persistent_id; 13 | class wxTextCtrl* m_mii_name; 14 | class wxButton* m_ok_button, * m_cancel_buton; 15 | 16 | void OnOK(wxCommandEvent& event); 17 | void OnCancel(wxCommandEvent& event); 18 | }; -------------------------------------------------------------------------------- /src/gui/dialogs/SaveImport/SaveImportWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class SaveImportWindow : public wxDialog 6 | { 7 | public: 8 | SaveImportWindow(wxWindow* parent, uint64 title_id); 9 | 10 | void EndModal(int retCode) override; 11 | 12 | uint32 GetTargetPersistentId() const { return m_target_id; } 13 | private: 14 | void OnImport(wxCommandEvent& event); 15 | 16 | class wxFilePickerCtrl* m_source_selection; 17 | class wxComboBox* m_target_selection; 18 | 19 | uint32 m_target_id = 0; 20 | const uint64 m_title_id; 21 | const fs::path m_source_file; 22 | int m_return_code = wxCANCEL; 23 | }; 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/gui/dialogs/SaveImport/SaveTransfer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class wxComboBox; 6 | 7 | class SaveTransfer : public wxDialog 8 | { 9 | public: 10 | SaveTransfer(wxWindow* parent, uint64 title_id, const wxString& source_account, uint32 source_id); 11 | 12 | void EndModal(int retCode) override; 13 | 14 | uint32 GetTargetPersistentId() const { return m_target_id; } 15 | private: 16 | void OnTransfer(wxCommandEvent& event); 17 | 18 | wxComboBox* m_target_selection; 19 | 20 | uint32 m_target_id = 0; 21 | const uint64 m_title_id; 22 | const uint32 m_source_id; 23 | int m_return_code = wxCANCEL; 24 | }; 25 | -------------------------------------------------------------------------------- /src/gui/helpers/wxCustomEvents.cpp: -------------------------------------------------------------------------------- 1 | #include "gui/helpers/wxCustomEvents.h" 2 | 3 | wxDEFINE_EVENT(wxEVT_SET_STATUS_BAR_TEXT, wxSetStatusBarTextEvent); 4 | wxDEFINE_EVENT(wxEVT_SET_GAUGE_VALUE, wxSetGaugeValue); 5 | wxDEFINE_EVENT(wxEVT_REMOVE_ITEM, wxCommandEvent); 6 | wxDEFINE_EVENT(wxEVT_SET_TEXT, wxCommandEvent); 7 | wxDEFINE_EVENT(wxEVT_ENABLE, wxCommandEvent); -------------------------------------------------------------------------------- /src/gui/helpers/wxLogEvent.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class wxLogEvent; 6 | wxDECLARE_EVENT(EVT_LOG, wxLogEvent); 7 | 8 | class wxLogEvent : public wxCommandEvent 9 | { 10 | public: 11 | wxLogEvent(const wxString& filter, const wxString& message) 12 | : wxCommandEvent(EVT_LOG), m_filter(filter), m_message(message) { } 13 | 14 | wxLogEvent(const wxLogEvent& event) 15 | : wxCommandEvent(event), m_filter(event.m_filter), m_message(event.m_message) { } 16 | 17 | wxEvent* Clone() const { return new wxLogEvent(*this); } 18 | 19 | [[nodiscard]] const wxString& GetFilter() const 20 | { 21 | return m_filter; 22 | } 23 | 24 | [[nodiscard]] const wxString& GetMessage() const 25 | { 26 | return m_message; 27 | } 28 | 29 | private: 30 | wxString m_filter; 31 | wxString m_message; 32 | }; 33 | -------------------------------------------------------------------------------- /src/gui/helpers/wxWayland.cpp: -------------------------------------------------------------------------------- 1 | #include "gui/helpers/wxWayland.h" 2 | 3 | #if BOOST_OS_LINUX && HAS_WAYLAND 4 | 5 | #include 6 | 7 | bool wxWlIsWaylandWindow(wxWindow* window) 8 | { 9 | GtkWidget* gtkWindow = static_cast(window->GetHandle()); 10 | GdkWindow* gdkWindow = gtk_widget_get_window(gtkWindow); 11 | return GDK_IS_WAYLAND_WINDOW(gdkWindow); 12 | } 13 | 14 | void wxWlSetAppId(wxFrame* frame, const char* applicationId) 15 | { 16 | GtkWidget* gtkWindow = static_cast(frame->GetHandle()); 17 | gtk_widget_realize(gtkWindow); 18 | GdkWindow* gdkWindow = gtk_widget_get_window(gtkWindow); 19 | static auto gdk_wl_set_app_id = reinterpret_cast(dlsym(nullptr, "gdk_wayland_window_set_application_id")); 20 | if (gdk_wl_set_app_id) 21 | gdk_wl_set_app_id(gdkWindow, applicationId); 22 | } 23 | 24 | #endif // BOOST_OS_LINUX && HAS_WAYLAND 25 | -------------------------------------------------------------------------------- /src/gui/input/PairingDialog.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | class PairingDialog : public wxDialog 9 | { 10 | public: 11 | PairingDialog(wxWindow* parent); 12 | ~PairingDialog(); 13 | 14 | private: 15 | enum class PairingState 16 | { 17 | Pairing, 18 | Finished, 19 | NoBluetoothAvailable, 20 | SearchFailed, 21 | PairingFailed, 22 | BluetoothUnusable 23 | }; 24 | 25 | void OnClose(wxCloseEvent& event); 26 | void OnCancelButton(const wxCommandEvent& event); 27 | void OnGaugeUpdate(wxCommandEvent& event); 28 | 29 | void WorkerThread(); 30 | void UpdateCallback(PairingState state); 31 | 32 | wxStaticText* m_text; 33 | wxGauge* m_gauge; 34 | wxButton* m_cancelButton; 35 | 36 | std::thread m_thread; 37 | bool m_threadShouldQuit = false; 38 | }; 39 | -------------------------------------------------------------------------------- /src/gui/input/panels/ClassicControllerInputPanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "input/emulated/ClassicController.h" 5 | #include "gui/input/panels/InputPanel.h" 6 | 7 | class wxInputDraw; 8 | 9 | class ClassicControllerInputPanel : public InputPanel 10 | { 11 | public: 12 | ClassicControllerInputPanel(wxWindow* parent); 13 | 14 | private: 15 | wxInputDraw* m_left_draw, * m_right_draw; 16 | 17 | void add_button_row(wxGridBagSizer *sizer, sint32 row, sint32 column, const ClassicController::ButtonId &button_id); 18 | }; 19 | 20 | -------------------------------------------------------------------------------- /src/gui/input/panels/ProControllerInputPanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "input/emulated/ProController.h" 5 | #include "gui/input/panels/InputPanel.h" 6 | #include "gui/components/wxInputDraw.h" 7 | 8 | class ProControllerInputPanel : public InputPanel 9 | { 10 | public: 11 | ProControllerInputPanel(wxWindow* parent); 12 | 13 | void on_timer(const EmulatedControllerPtr& emulated_controller, const ControllerPtr& controller) override; 14 | 15 | private: 16 | wxInputDraw* m_left_draw, * m_right_draw; 17 | 18 | void add_button_row(wxGridBagSizer *sizer, sint32 row, sint32 column, const ProController::ButtonId &button_id); 19 | }; 20 | -------------------------------------------------------------------------------- /src/gui/input/panels/VPADInputPanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "gui/input/panels/InputPanel.h" 5 | 6 | class wxInputDraw; 7 | class wxCheckBox; 8 | 9 | class VPADInputPanel : public InputPanel 10 | { 11 | public: 12 | VPADInputPanel(wxWindow* parent); 13 | 14 | void on_timer(const EmulatedControllerPtr& emulated_controller, const ControllerPtr& controller) override; 15 | virtual void load_controller(const EmulatedControllerPtr& controller) override; 16 | 17 | private: 18 | void OnVolumeChange(wxCommandEvent& event); 19 | 20 | wxInputDraw* m_left_draw, * m_right_draw; 21 | wxCheckBox* m_togglePadViewCheckBox; 22 | 23 | void add_button_row(wxGridBagSizer *sizer, sint32 row, sint32 column, const VPADController::ButtonId &button_id); 24 | void add_button_row(wxGridBagSizer *sizer, sint32 row, sint32 column, const VPADController::ButtonId &button_id, const wxString &label); 25 | }; 26 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/checked.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * checked_xpm[] = { 3 | "16 16 5 1", 4 | " c None", 5 | ". c #808080", 6 | "X c Black", 7 | "o c #c0c0c0", 8 | "w c White", 9 | " ", 10 | " ", 11 | " ............ ", 12 | " .XXXXXXXXXXo ", 13 | " .Xwwwwwwwwwo ", 14 | " .XwwwwwwwXwo ", 15 | " .XwwwwwwXXwo ", 16 | " .XwXwwwXXXwo ", 17 | " .XwXXwXXXwwo ", 18 | " .XwXXXXXwwwo ", 19 | " .XwwXXXwwwwo ", 20 | " .XwwwXwwwwwo ", 21 | " .Xwwwwwwwwwo ", 22 | " .ooooooooooo ", 23 | " ", 24 | " "}; 25 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/checked2.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * checked2_xpm[] = { 3 | "14 15 20 1", 4 | " c None", 5 | ". c #1C5180", 6 | "+ c #E2E2DD", 7 | "@ c #E3E3DF", 8 | "# c #E5E5E1", 9 | "$ c #E7E7E3", 10 | "% c #EAEAE6", 11 | "& c #ECECE9", 12 | "* c #EFEFEC", 13 | "= c #F1F1EF", 14 | "- c #F3F3F1", 15 | "; c #F5F5F3", 16 | "> c #21A121", 17 | ", c #F7F7F6", 18 | "' c #F9F9F8", 19 | ") c #FAFAF9", 20 | "! c #FCFCFB", 21 | "~ c #FDFDFD", 22 | "{ c #FEFEFE", 23 | "] c #FFFFFF", 24 | "............. ", 25 | ".+++@#$%&*=-. ", 26 | ".++@#$%&*=-;. ", 27 | ".+@#$%&*=>;,. ", 28 | ".@#$%&*=>>,'. ", 29 | ".#$>&*=>>>'). ", 30 | ".$%>>=>>>')!. ", 31 | ".%&>>>>>')!~. ", 32 | ".&*=>>>')!~{. ", 33 | ".*=-;>')!~{]. ", 34 | ".=-;,')!~{]]. ", 35 | ".-;,')!~{]]]. ", 36 | "............. ", 37 | " ", 38 | " "}; 39 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/checked_d.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * checked_d_xpm[] = { 3 | "14 15 3 1", 4 | " c None", 5 | ". c #CAC8BB", 6 | "+ c #FFFFFF", 7 | "............. ", 8 | ".+++++++++++. ", 9 | ".+++++++++++. ", 10 | ".++++++++.++. ", 11 | ".+++++++..++. ", 12 | ".++.+++...++. ", 13 | ".++..+...+++. ", 14 | ".++.....++++. ", 15 | ".+++...+++++. ", 16 | ".++++.++++++. ", 17 | ".+++++++++++. ", 18 | ".+++++++++++. ", 19 | "............. ", 20 | " ", 21 | " "}; 22 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/checked_dis.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * checked_dis_xpm[] = { 3 | "16 16 4 1", 4 | " c None", 5 | ". c #808080", 6 | "X c Black", 7 | "o c #c0c0c0", 8 | " ", 9 | " ", 10 | " ............ ", 11 | " .XXXXXXXXXXo ", 12 | " .Xoooooooooo ", 13 | " .Xooooooo.oo ", 14 | " .Xoooooo..oo ", 15 | " .Xo.ooo...oo ", 16 | " .Xo..o...ooo ", 17 | " .Xo.....oooo ", 18 | " .Xoo...ooooo ", 19 | " .Xooo.oooooo ", 20 | " .Xoooooooooo ", 21 | " .ooooooooooo ", 22 | " ", 23 | " "}; 24 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/unchecked.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * unchecked_xpm[] = { 3 | "16 16 5 1", 4 | " c None", 5 | ". c #808080", 6 | "X c Black", 7 | "o c #c0c0c0", 8 | "w c White", 9 | " ", 10 | " ", 11 | " ............ ", 12 | " .XXXXXXXXXXo ", 13 | " .Xwwwwwwwwwo ", 14 | " .Xwwwwwwwwwo ", 15 | " .Xwwwwwwwwwo ", 16 | " .Xwwwwwwwwwo ", 17 | " .Xwwwwwwwwwo ", 18 | " .Xwwwwwwwwwo ", 19 | " .Xwwwwwwwwwo ", 20 | " .Xwwwwwwwwwo ", 21 | " .Xwwwwwwwwwo ", 22 | " .ooooooooooo ", 23 | " ", 24 | " "}; 25 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/unchecked2.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * unchecked2_xpm[] = { 3 | "14 15 19 1", 4 | " c None", 5 | ". c #1C5180", 6 | "+ c #DCDCD7", 7 | "@ c #DEDED9", 8 | "# c #E0E0DB", 9 | "$ c #E2E2DE", 10 | "% c #E5E5E2", 11 | "& c #E8E8E5", 12 | "* c #ECECE9", 13 | "= c #EFEFEC", 14 | "- c #F1F1EF", 15 | "; c #F3F3F1", 16 | "> c #F5F5F4", 17 | ", c #F7F7F6", 18 | "' c #F9F9F8", 19 | ") c #FBFBFA", 20 | "! c #FDFDFC", 21 | "~ c #FEFEFE", 22 | "{ c #FFFFFF", 23 | "............. ", 24 | ".+++@#$%&*=-. ", 25 | ".++@#$%&*=-;. ", 26 | ".+@#$%&*=-;>. ", 27 | ".@#$%&*=-;>,. ", 28 | ".#$%&*=-;>,'. ", 29 | ".$%&*=-;>,'). ", 30 | ".%&*=-;>,')!. ", 31 | ".&*=-;>,')!~. ", 32 | ".*=-;>,')!~{. ", 33 | ".=-;>,')!~{{. ", 34 | ".-;>,')!~{{{. ", 35 | "............. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/unchecked_d.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * unchecked_d_xpm[] = { 3 | "14 15 3 1", 4 | " c None", 5 | ". c #CAC8BB", 6 | "+ c #FFFFFF", 7 | "............. ", 8 | ".+++++++++++. ", 9 | ".+++++++++++. ", 10 | ".+++++++++++. ", 11 | ".+++++++++++. ", 12 | ".+++++++++++. ", 13 | ".+++++++++++. ", 14 | ".+++++++++++. ", 15 | ".+++++++++++. ", 16 | ".+++++++++++. ", 17 | ".+++++++++++. ", 18 | ".+++++++++++. ", 19 | "............. ", 20 | " ", 21 | " "}; 22 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/unchecked_dis.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * unchecked_dis_xpm[] = { 3 | "16 16 4 1", 4 | " c None", 5 | ". c #808080", 6 | "X c Black", 7 | "o c #c0c0c0", 8 | " ", 9 | " ", 10 | " ............ ", 11 | " .XXXXXXXXXXo ", 12 | " .Xoooooooooo ", 13 | " .Xoooooooooo ", 14 | " .Xoooooooooo ", 15 | " .Xoooooooooo ", 16 | " .Xoooooooooo ", 17 | " .Xoooooooooo ", 18 | " .Xoooooooooo ", 19 | " .Xoooooooooo ", 20 | " .Xoooooooooo ", 21 | " .ooooooooooo ", 22 | " ", 23 | " "}; 24 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/unchecked_ld.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * unchecked_ld_xpm[] = { 3 | "14 15 19 1", 4 | " c None", 5 | ". c #1C5180", 6 | "+ c #B0B0A7", 7 | "@ c #B3B3AA", 8 | "# c #B7B7AD", 9 | "$ c #BCBBB1", 10 | "% c #C1C1B6", 11 | "& c #C7C6BB", 12 | "* c #CDCCC0", 13 | "= c #D2D1C5", 14 | "- c #D7D5C8", 15 | "; c #DBDACC", 16 | "> c #DFDDCF", 17 | ", c #E3E1D3", 18 | "' c #E6E5D6", 19 | ") c #EAE8D9", 20 | "! c #EDEBDB", 21 | "~ c #EFEDDD", 22 | "{ c #F1EFDF", 23 | "............. ", 24 | ".+++@#$%&*=-. ", 25 | ".++@#$%&*=-;. ", 26 | ".+@#$%&*=-;>. ", 27 | ".@#$%&*=-;>,. ", 28 | ".#$%&*=-;>,'. ", 29 | ".$%&*=-;>,'). ", 30 | ".%&*=-;>,')!. ", 31 | ".&*=-;>,')!~. ", 32 | ".*=-;>,')!~{. ", 33 | ".=-;>,')!~{{. ", 34 | ".-;>,')!~{{{. ", 35 | "............. ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /src/gui/wxcomponents/unchecked_mo.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char * unchecked_mo_xpm[] = { 3 | "14 15 24 1", 4 | " c None", 5 | ". c #1C5180", 6 | "+ c #FFF0CF", 7 | "@ c #FFEDC6", 8 | "# c #FFE9BA", 9 | "$ c #FEE4AC", 10 | "% c #FEDF9C", 11 | "& c #FDD98C", 12 | "* c #FDD684", 13 | "= c #FCD37C", 14 | "- c #FCD074", 15 | "; c #FBCC6B", 16 | "> c #FBC863", 17 | ", c #FAC55A", 18 | "' c #E7E7E3", 19 | ") c #FAC254", 20 | "! c #FAC04E", 21 | "~ c #F9BD48", 22 | "{ c #F9BB43", 23 | "] c #F9B93E", 24 | "^ c #F9B73A", 25 | "/ c #F8B636", 26 | "( c #F8B433", 27 | "_ c #F8B330", 28 | "............. ", 29 | ".+@#$%&*=-;>. ", 30 | ".@#$%&*=-;>,. ", 31 | ".#$''''''',). ", 32 | ".$%''''''')!. ", 33 | ".%&'''''''!~. ", 34 | ".&*'''''''~{. ", 35 | ".*='''''''{]. ", 36 | ".=-''''''']^. ", 37 | ".-;'''''''^/. ", 38 | ".;>,)!~{]^/(. ", 39 | ".>,)!~{]^/(_. ", 40 | "............. ", 41 | " ", 42 | " "}; 43 | -------------------------------------------------------------------------------- /src/imgui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(imguiImpl 2 | imgui_impl_opengl3.cpp 3 | imgui_impl_opengl3.h 4 | imgui_impl_vulkan.cpp 5 | imgui_impl_vulkan.h 6 | imgui_extension.cpp 7 | imgui_extension.h 8 | ) 9 | 10 | set_property(TARGET imguiImpl PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") 11 | 12 | target_include_directories(imguiImpl PUBLIC "../") 13 | 14 | # imgui source files 15 | target_sources(imguiImpl PRIVATE 16 | "../../dependencies/imgui/imgui.cpp" 17 | "../../dependencies/imgui/imgui_draw.cpp" 18 | "../../dependencies/imgui/imgui_tables.cpp" 19 | "../../dependencies/imgui/imgui_widgets.cpp" 20 | ) 21 | 22 | target_include_directories(imguiImpl PUBLIC "../../dependencies/imgui/") 23 | 24 | target_link_libraries(imguiImpl PRIVATE 25 | CemuCafe 26 | CemuCommon 27 | CemuGui 28 | CemuInput 29 | CemuResource 30 | CemuUtil 31 | ) 32 | -------------------------------------------------------------------------------- /src/imgui/imgui_extension.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "imgui.h" 3 | 4 | void ImRotateStart(); 5 | ImVec2 ImRotationCenter(); 6 | void ImRotateEnd(float rad, ImVec2 center = ImRotationCenter()); 7 | 8 | inline ImVec2 operator-(const ImVec2& l, const ImVec2& r) { return{ l.x - r.x, l.y - r.y }; } 9 | inline bool operator<(const ImVec2& lhs, const ImVec2& rhs) { return lhs.x < rhs.x; } 10 | inline bool operator>=(const ImVec2& lhs, const ImVec2& rhs) { return lhs.x >= rhs.x; } 11 | 12 | bool ImGui_BeginPadDistinct(const char* name, bool* p_open, ImGuiWindowFlags flags, bool pad); 13 | 14 | void ImGui_PrecacheFonts(); 15 | void ImGui_ClearFonts(); 16 | ImFont* ImGui_GetFont(float size); 17 | void ImGui_UpdateWindowInformation(bool mainWindow); -------------------------------------------------------------------------------- /src/input/ControllerFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "input/api/InputAPI.h" 4 | #include "input/api/Controller.h" 5 | #include "input/emulated/EmulatedController.h" 6 | 7 | class ControllerFactory 8 | { 9 | public: 10 | static ControllerPtr CreateController(InputAPI::Type api, std::string_view uuid, std::string_view display_name); 11 | static EmulatedControllerPtr CreateEmulatedController(size_t player_index, EmulatedController::Type type); 12 | static ControllerProviderPtr CreateControllerProvider(InputAPI::Type api, const ControllerProviderSettings& settings); 13 | }; 14 | -------------------------------------------------------------------------------- /src/input/api/ControllerState.cpp: -------------------------------------------------------------------------------- 1 | #include "input/api/ControllerState.h" 2 | 3 | bool ControllerState::operator==(const ControllerState& other) const 4 | { 5 | return buttons == other.buttons; 6 | /*&& (std::signbit(axis.x) == std::signbit(other.axis.x) && std::abs(axis.x - other.axis.x) <= kAxisThreshold) 7 | && (std::signbit(axis.y) == std::signbit(other.axis.y) && std::abs(axis.y - other.axis.y) <= kAxisThreshold) 8 | && (std::signbit(rotation.x) == std::signbit(other.rotation.x) && std::abs(rotation.x - other.rotation.x) <= kAxisThreshold) 9 | && (std::signbit(rotation.y) == std::signbit(other.rotation.y) && std::abs(rotation.y - other.rotation.y) <= kAxisThreshold) 10 | && (std::signbit(trigger.x) == std::signbit(other.trigger.x) && std::abs(trigger.x - other.trigger.x) <= kAxisThreshold) 11 | && (std::signbit(trigger.y) == std::signbit(other.trigger.y) && std::abs(trigger.y - other.trigger.y) <= kAxisThreshold);*/ 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/input/api/Keyboard/KeyboardController.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "input/api/Keyboard/KeyboardControllerProvider.h" 4 | #include "input/api/Controller.h" 5 | 6 | class KeyboardController : public Controller 7 | { 8 | public: 9 | KeyboardController(); 10 | 11 | std::string_view api_name() const override // TODO: use constexpr virtual function with c++20 12 | { 13 | static_assert(to_string(InputAPI::Keyboard) == "Keyboard"); 14 | return to_string(InputAPI::Keyboard); 15 | } 16 | InputAPI::Type api() const override { return InputAPI::Keyboard; } 17 | 18 | bool is_connected() override { return true; } 19 | 20 | bool has_axis() const override { return false; } 21 | 22 | std::string get_button_name(uint64 button) const override; 23 | 24 | protected: 25 | ControllerState raw_state() override; 26 | 27 | }; 28 | -------------------------------------------------------------------------------- /src/input/api/Keyboard/KeyboardControllerProvider.cpp: -------------------------------------------------------------------------------- 1 | #include "input/api/Keyboard/KeyboardControllerProvider.h" 2 | 3 | #include "input/api/Keyboard/KeyboardController.h" 4 | 5 | std::vector> KeyboardControllerProvider::get_controllers() 6 | { 7 | std::vector> result; 8 | result.emplace_back(std::make_shared()); 9 | return result; 10 | } 11 | -------------------------------------------------------------------------------- /src/input/api/Keyboard/KeyboardControllerProvider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "input/api/ControllerProvider.h" 4 | 5 | #ifndef HAS_KEYBOARD 6 | #define HAS_KEYBOARD 1 7 | #endif 8 | 9 | class KeyboardControllerProvider : public ControllerProviderBase 10 | { 11 | friend class KeyboardController; 12 | public: 13 | inline static InputAPI::Type kAPIType = InputAPI::Keyboard; 14 | InputAPI::Type api() const override { return kAPIType; } 15 | 16 | std::vector> get_controllers() override; 17 | }; 18 | -------------------------------------------------------------------------------- /src/input/api/Wiimote/WiimoteDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class WiimoteDevice 4 | { 5 | friend class WiimoteInfo; 6 | public: 7 | virtual ~WiimoteDevice() = default; 8 | 9 | virtual bool write_data(const std::vector& data) = 0; 10 | virtual std::optional> read_data() = 0; 11 | 12 | virtual bool operator==(const WiimoteDevice& o) const = 0; 13 | }; 14 | 15 | using WiimoteDevicePtr = std::shared_ptr; 16 | -------------------------------------------------------------------------------- /src/input/api/Wiimote/hidapi/HidapiWiimote.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class HidapiWiimote : public WiimoteDevice { 7 | public: 8 | HidapiWiimote(hid_device* dev, std::string_view path); 9 | ~HidapiWiimote() override; 10 | 11 | bool write_data(const std::vector &data) override; 12 | std::optional> read_data() override; 13 | bool operator==(const WiimoteDevice& o) const override; 14 | 15 | static std::vector get_devices(); 16 | 17 | private: 18 | hid_device* m_handle; 19 | const std::string m_path; 20 | 21 | }; 22 | -------------------------------------------------------------------------------- /src/input/api/Wiimote/l2cap/L2CapWiimote.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | class L2CapWiimote : public WiimoteDevice 6 | { 7 | public: 8 | L2CapWiimote(int controlFd, int dataFd, bdaddr_t addr); 9 | ~L2CapWiimote() override; 10 | 11 | bool write_data(const std::vector& data) override; 12 | std::optional> read_data() override; 13 | bool operator==(const WiimoteDevice& o) const override; 14 | 15 | static void AddCandidateAddress(bdaddr_t addr); 16 | static std::vector get_devices(); 17 | private: 18 | int m_controlFd; 19 | int m_dataFd; 20 | bdaddr_t m_addr; 21 | }; 22 | 23 | -------------------------------------------------------------------------------- /src/resource/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(CemuResource) 2 | 3 | set_property(TARGET CemuResource PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") 4 | 5 | enable_language(ASM) 6 | 7 | # icon resources 8 | target_sources(CemuResource PRIVATE 9 | embedded/resources.cpp 10 | embedded/resources.h 11 | ) 12 | 13 | if(UNIX) 14 | if(NOT APPLE) 15 | target_sources(CemuResource PRIVATE embedded/fontawesome.S) 16 | else() 17 | target_sources(CemuResource PRIVATE embedded/fontawesome_macos.S) 18 | endif() 19 | endif() 20 | 21 | target_sources(CemuResource PRIVATE CafeDefaultFont.cpp) 22 | 23 | target_include_directories(CemuResource PUBLIC "../") 24 | 25 | target_link_libraries(CemuResource PRIVATE CemuCommon CemuComponents) 26 | -------------------------------------------------------------------------------- /src/resource/cemu.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/cemu.icns -------------------------------------------------------------------------------- /src/resource/debugger/icons8-drop-down-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-drop-down-50.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-full-moon-filled-50-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-full-moon-filled-50-red.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-full-moon-filled-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-full-moon-filled-50.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-pause-filled-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-pause-filled-50.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-play-filled-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-play-filled-50.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-step-into-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-step-into-50.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-step-out-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-step-out-50.png -------------------------------------------------------------------------------- /src/resource/debugger/icons8-step-over-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/debugger/icons8-step-over-50.png -------------------------------------------------------------------------------- /src/resource/embedded/fontawesome.S: -------------------------------------------------------------------------------- 1 | .section .rodata,"",%progbits 2 | .global g_fontawesome_data, g_fontawesome_size 3 | 4 | g_fontawesome_data: 5 | .incbin "fontawesome-webfont.ttf" 6 | g_fontawesome_size: 7 | .int g_fontawesome_size - g_fontawesome_data 8 | 9 | .section .note.GNU-stack,"",%progbits -------------------------------------------------------------------------------- /src/resource/embedded/fontawesome_macos.S: -------------------------------------------------------------------------------- 1 | .section __DATA, __const 2 | .global _g_fontawesome_data, _g_fontawesome_size 3 | 4 | _g_fontawesome_data: 5 | .incbin "fontawesome-webfont.ttf" 6 | _g_fontawesome_size: 7 | .int _g_fontawesome_size - _g_fontawesome_data 8 | 9 | -------------------------------------------------------------------------------- /src/resource/embedded/resources.cpp: -------------------------------------------------------------------------------- 1 | #include "X_GAME_PROFILE.xpm" 2 | #include "M_WND_ICON128.xpm" 3 | #include "X_BOX.xpm" 4 | #include "X_SETTINGS.xpm" 5 | 6 | #include "icons8-checkmark-yes-32.hpng" 7 | #include "icons8-error-32.hpng" 8 | #include "PNG_HELP.hpng" 9 | #include "PNG_REFRESH.hpng" 10 | 11 | #include "DEBUGGER_BP.hpng" 12 | #include "DEBUGGER_BP_RED.hpng" 13 | #include "DEBUGGER_PAUSE.hpng" 14 | #include "DEBUGGER_PLAY.hpng" 15 | #include "DEBUGGER_STEP_INTO.hpng" 16 | #include "DEBUGGER_STEP_OUT.hpng" 17 | #include "DEBUGGER_STEP_OVER.hpng" 18 | #include "DEBUGGER_GOTO.hpng" 19 | 20 | #include "INPUT_LOW_BATTERY.hpng" 21 | #include "INPUT_CONNECTED.hpng" 22 | #include "INPUT_DISCONNECTED.hpng" 23 | -------------------------------------------------------------------------------- /src/resource/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/resource/icons8-cardboard-box-filled-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8-cardboard-box-filled-50.png -------------------------------------------------------------------------------- /src/resource/icons8-checkmark-yes-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8-checkmark-yes-32.png -------------------------------------------------------------------------------- /src/resource/icons8-compose-filled-50.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8-compose-filled-50.ico -------------------------------------------------------------------------------- /src/resource/icons8-error-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8-error-32.png -------------------------------------------------------------------------------- /src/resource/icons8-help-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8-help-24.png -------------------------------------------------------------------------------- /src/resource/icons8-refresh-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8-refresh-32.png -------------------------------------------------------------------------------- /src/resource/icons8_automatic_26_xQK_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8_automatic_26_xQK_icon.ico -------------------------------------------------------------------------------- /src/resource/icons8_cardboard_box_filled.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/icons8_cardboard_box_filled.ico -------------------------------------------------------------------------------- /src/resource/input/icons8-connected-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/input/icons8-connected-50.png -------------------------------------------------------------------------------- /src/resource/input/icons8-disconnected-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/input/icons8-disconnected-50.png -------------------------------------------------------------------------------- /src/resource/input/icons8-game-controller-24.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/input/icons8-game-controller-24.ico -------------------------------------------------------------------------------- /src/resource/input/icons8-game-controller-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/input/icons8-game-controller-24.png -------------------------------------------------------------------------------- /src/resource/input/icons8-low-battery-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/input/icons8-low-battery-30.png -------------------------------------------------------------------------------- /src/resource/logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/logo_1.png -------------------------------------------------------------------------------- /src/resource/logo_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/logo_icon.ico -------------------------------------------------------------------------------- /src/resource/logo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/logo_icon.png -------------------------------------------------------------------------------- /src/resource/logo_icon16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/logo_icon16.ico -------------------------------------------------------------------------------- /src/resource/logo_icon2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/logo_icon2.ico -------------------------------------------------------------------------------- /src/resource/orig1024.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/orig1024.ico -------------------------------------------------------------------------------- /src/resource/output.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SamoZ256/Cemu/783d88a892204d0570d0720d3749d01b685bdc31/src/resource/output.ico -------------------------------------------------------------------------------- /src/resource/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by cemu.rc 4 | // 5 | #include "Common/version.h" 6 | #define IDI_ICON2 102 7 | #define IDI_ICON3 103 8 | #define IDR_FONTAWESOME 116 9 | 10 | // Next default values for new objects 11 | // 12 | #ifdef APSTUDIO_INVOKED 13 | #ifndef APSTUDIO_READONLY_SYMBOLS 14 | #define _APS_NEXT_RESOURCE_VALUE 118 15 | #define _APS_NEXT_COMMAND_VALUE 40001 16 | #define _APS_NEXT_CONTROL_VALUE 1001 17 | #define _APS_NEXT_SYMED_VALUE 101 18 | #endif 19 | #endif 20 | -------------------------------------------------------------------------------- /src/resource/update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | APP=$(cd "$(dirname "0")"/;pwd) 4 | hdiutil attach $TMPDIR/cemu_update/cemu.dmg 5 | cp -rf /Volumes/Cemu/Cemu.app "$APP" 6 | hdiutil detach /Volumes/Cemu/ 7 | 8 | open -n -a "$APP/Cemu.app" 9 | -------------------------------------------------------------------------------- /src/util/Fiber/Fiber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #if BOOST_OS_WINDOWS 4 | 5 | #endif 6 | 7 | class Fiber 8 | { 9 | public: 10 | Fiber(void(*FiberEntryPoint)(void* userParam), void* userParam, void* privateData); 11 | ~Fiber(); 12 | 13 | static Fiber* PrepareCurrentThread(void* privateData = nullptr); 14 | static void Switch(Fiber& targetFiber); 15 | static void* GetFiberPrivateData(); 16 | private: 17 | Fiber(void* privateData); // fiber from current thread 18 | 19 | void* m_implData{nullptr}; 20 | void* m_privateData; 21 | void* m_stackPtr{ nullptr }; 22 | }; -------------------------------------------------------------------------------- /src/util/MemMapper/MemMapper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace MemMapper 4 | { 5 | enum class PAGE_PERMISSION : uint32 6 | { 7 | P_READ = (0x01), 8 | P_WRITE = (0x02), 9 | P_EXECUTE = (0x04), 10 | // combined 11 | P_NONE = 0, 12 | P_RW = (0x03), 13 | P_RWX = (0x07) 14 | }; 15 | DEFINE_ENUM_FLAG_OPERATORS(PAGE_PERMISSION); 16 | 17 | size_t GetPageSize(); 18 | 19 | void* ReserveMemory(void* baseAddr, size_t size, PAGE_PERMISSION permissionFlags); 20 | void FreeReservation(void* baseAddr, size_t size); 21 | 22 | void* AllocateMemory(void* baseAddr, size_t size, PAGE_PERMISSION permissionFlags, bool fromReservation = false); 23 | void FreeMemory(void* baseAddr, size_t size, bool fromReservation = false); 24 | }; -------------------------------------------------------------------------------- /src/util/SystemInfo/SystemInfo.cpp: -------------------------------------------------------------------------------- 1 | #include "util/SystemInfo/SystemInfo.h" 2 | 3 | uint64 ProcessorTime::work() 4 | { 5 | return user + kernel; 6 | } 7 | 8 | uint64 ProcessorTime::total() 9 | { 10 | return idle + user + kernel; 11 | } 12 | 13 | double ProcessorTime::Compare(ProcessorTime &last, ProcessorTime &now) 14 | { 15 | auto dwork = now.work() - last.work(); 16 | auto dtotal = now.total() - last.total(); 17 | 18 | return (double)dwork / dtotal; 19 | } 20 | 21 | uint32 GetProcessorCount() 22 | { 23 | return std::thread::hardware_concurrency(); 24 | } 25 | 26 | void QueryProcTime(ProcessorTime &out) 27 | { 28 | uint64 now, user, kernel; 29 | QueryProcTime(now, user, kernel); 30 | 31 | out.idle = now - (user + kernel); 32 | out.kernel = kernel; 33 | out.user = user; 34 | } -------------------------------------------------------------------------------- /src/util/SystemInfo/SystemInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct ProcessorTime 4 | { 5 | uint64 idle{}, kernel{}, user{}; 6 | 7 | uint64 work(); 8 | uint64 total(); 9 | 10 | static double Compare(ProcessorTime &last, ProcessorTime &now); 11 | }; 12 | 13 | uint32 GetProcessorCount(); 14 | uint64 QueryRamUsage(); 15 | void QueryProcTime(uint64 &out_now, uint64 &out_user, uint64 &out_kernel); 16 | void QueryProcTime(ProcessorTime &out); 17 | void QueryCoreTimes(uint32 count, std::vector& out); 18 | -------------------------------------------------------------------------------- /src/util/SystemInfo/SystemInfoStub.cpp: -------------------------------------------------------------------------------- 1 | #include "util/SystemInfo/SystemInfo.h" 2 | 3 | uint64 QueryRamUsage() 4 | { 5 | return 0; 6 | } 7 | 8 | void QueryProcTime(uint64 &out_now, uint64 &out_user, uint64 &out_kernel) 9 | { 10 | out_now = 0; 11 | out_user = 0; 12 | out_kernel = 0; 13 | } 14 | 15 | void QueryCoreTimes(uint32 count, std::vector& out) 16 | { 17 | for (auto i = 0; i < out.size(); ++i) 18 | { 19 | out[i] = { }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/util/SystemInfo/SystemInfoUnix.cpp: -------------------------------------------------------------------------------- 1 | #include "util/SystemInfo/SystemInfo.h" 2 | 3 | #include 4 | 5 | void QueryProcTime(uint64 &out_now, uint64 &out_user, uint64 &out_kernel) 6 | { 7 | struct tms time_info; 8 | clock_t clock_now = times(&time_info); 9 | clock_t clock_user = time_info.tms_utime; 10 | clock_t clock_kernel = time_info.tms_stime; 11 | out_now = static_cast(clock_now); 12 | out_user = static_cast(clock_user); 13 | out_kernel = static_cast(clock_kernel); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/util/ThreadPool/ThreadPool.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class ThreadPool 4 | { 5 | public: 6 | template 7 | static void FireAndForget(TFunction&& f, TArgs&&... args) 8 | { 9 | // todo - find a way to use std::async here so we can utilize thread pooling? 10 | std::thread t(std::forward(f), std::forward(args)...); 11 | t.detach(); 12 | } 13 | 14 | 15 | }; -------------------------------------------------------------------------------- /src/util/Zir/Core/ZpIRScheduler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "util/Zir/Core/IR.h" 3 | #include "util/Zir/Core/ZirUtility.h" 4 | 5 | -------------------------------------------------------------------------------- /src/util/bootSound/BootSoundReader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Cafe/Filesystem/fsc.h" 3 | 4 | class BootSoundReader 5 | { 6 | public: 7 | BootSoundReader() = delete; 8 | BootSoundReader(FSCVirtualFile* bootsndFile, sint32 blockSize); 9 | 10 | sint16* getSamples(); 11 | 12 | private: 13 | FSCVirtualFile* bootsndFile{}; 14 | sint32 blockSize{}; 15 | 16 | uint32be muteBits{}; 17 | uint32be loopPoint{}; 18 | std::vector buffer{}; 19 | std::vector bufferBE{}; 20 | }; 21 | -------------------------------------------------------------------------------- /src/util/containers/SmallBitset.h: -------------------------------------------------------------------------------- 1 | 2 | // optimized and compact version of std::bitset with no error checking in release mode 3 | // uses a single uint32 to store the bitmask, thus allowing up to 32 bool values 4 | 5 | template 6 | class SmallBitset 7 | { 8 | public: 9 | SmallBitset() = default; 10 | static_assert(N <= 32); 11 | 12 | bool test(size_t index) const 13 | { 14 | cemu_assert_debug(index < N); 15 | return ((m_bits >> index) & 1) != 0; 16 | } 17 | 18 | void set(size_t index, bool val) 19 | { 20 | cemu_assert_debug(index < N); 21 | m_bits &= ~(1u << index); 22 | if (val) 23 | m_bits |= (1u << index); 24 | } 25 | 26 | void set(size_t index) 27 | { 28 | cemu_assert_debug(index < N); 29 | m_bits |= (1u << index); 30 | } 31 | 32 | private: 33 | uint32 m_bits{}; 34 | }; -------------------------------------------------------------------------------- /src/util/crypto/aes128.h: -------------------------------------------------------------------------------- 1 | #ifndef _AES_H_ 2 | #define _AES_H_ 3 | 4 | void AES128_init(); 5 | 6 | extern void(*AES128_ECB_encrypt)(uint8* input, const uint8* key, uint8* output); 7 | 8 | void AES128_ECB_decrypt(uint8* input, const uint8* key, uint8 *output); 9 | 10 | void AES128_CBC_encrypt(uint8* output, uint8* input, uint32 length, const uint8* key, const uint8* iv); 11 | 12 | extern void(*AES128_CBC_decrypt)(uint8* output, uint8* input, uint32 length, const uint8* key, const uint8* iv); 13 | 14 | void AES128_CBC_decrypt_updateIV(uint8* output, uint8* input, uint32 length, const uint8* key, uint8* iv); 15 | 16 | void AES128CTR_transform(uint8* data, sint32 length, uint8* key, uint8* nonceIv); 17 | 18 | #endif //_AES_H_ 19 | -------------------------------------------------------------------------------- /src/util/crypto/crc32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | uint32 crc32_calc(uint32 c, const void* data, size_t length); 4 | 5 | inline uint32 crc32_calc(const void* data, size_t length) 6 | { 7 | return crc32_calc(0, data, length); 8 | } -------------------------------------------------------------------------------- /src/util/helpers/Singleton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | template 4 | class Singleton 5 | { 6 | protected: 7 | Singleton() = default; 8 | Singleton(const Singleton&) = delete; 9 | Singleton(Singleton&&) noexcept = delete; 10 | 11 | public: 12 | static TType& instance() noexcept 13 | { 14 | static TType s_instance; 15 | return s_instance; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /src/util/helpers/SystemException.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "util/helpers/helpers.h" 4 | 5 | class SystemException : public std::runtime_error 6 | { 7 | public: 8 | SystemException() 9 | : std::runtime_error(GetSystemErrorMessage().c_str()), m_error_code(GetExceptionError()) 10 | {} 11 | 12 | SystemException(const std::exception& ex) 13 | : std::runtime_error(GetSystemErrorMessage(ex).c_str()), m_error_code(GetExceptionError()) 14 | {} 15 | 16 | SystemException(const std::error_code& ec) 17 | : std::runtime_error(GetSystemErrorMessage(ec).c_str()), m_error_code(GetExceptionError()) 18 | {} 19 | 20 | [[nodiscard]] DWORD GetErrorCode() const { return m_error_code; } 21 | private: 22 | DWORD m_error_code; 23 | }; 24 | -------------------------------------------------------------------------------- /src/util/helpers/TempState.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | template 4 | class TempState 5 | { 6 | public: 7 | TempState(TCtor ctor, TDtor dtor) 8 | : m_dtor(std::move(dtor)) 9 | { 10 | ctor(); 11 | } 12 | 13 | ~TempState() 14 | { 15 | m_dtor(); 16 | } 17 | 18 | private: 19 | TDtor m_dtor; 20 | }; 21 | -------------------------------------------------------------------------------- /src/util/helpers/enum_array.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // expects the enum class (T) to have a value called ENUM_COUNT which is the maximum value + 1 4 | 5 | template 6 | class enum_array : public std::array(E::ENUM_COUNT)> { 7 | public: 8 | T& operator[] (E e) { 9 | return std::array(E::ENUM_COUNT)>::operator[]((std::size_t)e); 10 | } 11 | 12 | const T& operator[] (E e) const { 13 | return std::array(E::ENUM_COUNT)>::operator[]((std::size_t)e); 14 | } 15 | }; -------------------------------------------------------------------------------- /src/util/helpers/fspinlock.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // minimal but efficient non-recursive spinlock implementation 4 | 5 | #include 6 | 7 | class FSpinlock 8 | { 9 | public: 10 | bool is_locked() const 11 | { 12 | return m_lockBool.load(std::memory_order_relaxed); 13 | } 14 | 15 | // implement BasicLockable and Lockable 16 | void lock() const 17 | { 18 | while (true) 19 | { 20 | if (!m_lockBool.exchange(true, std::memory_order_acquire)) 21 | break; 22 | while (m_lockBool.load(std::memory_order_relaxed)) 23 | _mm_pause(); 24 | } 25 | } 26 | 27 | bool try_lock() const 28 | { 29 | return !m_lockBool.exchange(true, std::memory_order_acquire); 30 | } 31 | 32 | void unlock() const 33 | { 34 | m_lockBool.store(false, std::memory_order_release); 35 | } 36 | 37 | private: 38 | 39 | mutable std::atomic m_lockBool = false; 40 | }; 41 | --------------------------------------------------------------------------------