Commit Graph
4467 Commits
Author SHA1 Message Date
24b5ffbfca boss: Implement Spotpass service (part 1) (#7232)
* boss: Implement Spotpass service (part 1)

* boss: Fix save state (de)serialization.

* boss: Fix casing of SpotPass in log messages.

* boss: Minor logging improvements.

* common: Add boost serialization support for std::variant.

---------

Co-authored-by: Rokkubro <lachlanb03@gmail.com>
Co-authored-by: FearlessTobi <thm.frey@gmail.com>
2023-12-08 23:34:44 -08:00
GPUCodeandGitHub 59df319f48 kernel: Improve accuracy of KResourceLimit emulation (#7221)
* core: Refactor resource limits

* svc: Implement SetResourceLimitLimitValues

* Also correct existing name and add missing error codes
2023-12-04 13:31:06 +02:00
Steveice10andGitHub 875f5eaad5 file_sys: Add support for the BOSS ext save data archive. (#7231) 2023-12-03 14:02:23 -08:00
Steveice10andGitHub 0ed909e782 cfg: Fix auto-region detecting when the launched title has no regions. (#7218) 2023-11-29 12:36:18 -08:00
GPUCodeandGitHub 6ec079ede8 core: De-globalize HLE lock (#7212) 2023-11-28 14:15:27 -08:00
GPUCodeandGitHub db7b929e47 core: Remove special regions (#7211) 2023-11-26 12:07:30 -08:00
Steveice10andGitHub dc8425a986 kernel: Fix memory mapping issue introduced in https://github.com/citra-emu/citra/pull/6680 (#7208) 2023-11-26 12:07:10 -08:00
Steveice10andGitHub 670e9936a4 audio_core: Only perform audio stretching if below full speed. (#7201) 2023-11-26 12:06:59 -08:00
Steveice10andGitHub c0ecdb689d cfg: Update preferred region data on-demand. (#7206) 2023-11-24 23:10:58 -08:00
WunkandGitHub 68e6a2185d Fix missing u32 and LOG_TRACE includes (#7207)
This fixes a compile-error with gcc I was getting from
`LOG_TRACE`(`error: ‘LOG_TRACE’ was not declared in this scope`) and
`u32`(`error: ‘u32’ was not declared in this scope`) being used without
their header-files being included.

Not sure how `romfs_reader.cpp` is even compiling when nothing in its
include-tree is refers to those macros.
2023-11-23 15:39:17 -08:00
Steveice10andGitHub 33a1f27a99 cfg: Load and save MCU config as binary file. (#7200) 2023-11-21 17:56:08 -08:00
PabloMK7andGitHub f8ae41dfe3 Implement cfg UUID Clock Sequence (#7169)
* Implement cfg UUID Clock Sequence

* Remove unneeded variable.

* Apply suggestions

* Apply suggestions
2023-11-20 20:05:16 -08:00
Steveice10andGitHub ca6dae1744 fs: Fix save data secure value stubs. (#7191) 2023-11-19 10:18:23 -08:00
PabloMK7andGitHub b6acebcb11 Stub some missing AM Ticket functions (#7172) 2023-11-18 15:55:47 -08:00
WunkandGitHub 90a5d989e7 mic: Fix gain undeclared identifier (#7177) 2023-11-15 19:27:43 -08:00
PabloMK7andGitHub de40153fa4 Implement PS:GetRandomBytes and use openssl for random bytes (#7164) 2023-11-14 16:15:50 -08:00
PabloMK7andGitHub e9936e01c2 Stub QTM_S:GetHeadtrackingInfo (#7166)
* Stub QTM_S:GetHeadtrackingInfo

* Suggestions
2023-11-15 02:04:14 +02:00
GPUCodeandGitHub e28c2a390c core: Make running_core always match kernel current_cpu (#7159) 2023-11-14 04:31:25 -08:00
PabloMK7andGitHub 63d1830429 Download TWL titles from NUS and list them in AM. (#7162)
* Download TWL titles from NUS and list them in AM.

* Remove duplicate entries.

* Move TODO comment
2023-11-14 01:33:58 -08:00
Steveice10andGitHub 88cc6acb4d hle: Fix session limits for srv: and soc:U. (#7160) 2023-11-14 01:33:47 -08:00
PabloMK7andGitHub 3b31720c4d Map MappedBuffer guard pages in a single operation. (#7158) 2023-11-14 01:33:38 -08:00
Steveice10andGitHub f9bbae81aa hw/aes: Clean up key generator. (#7143) 2023-11-13 13:35:30 -08:00
PabloMK7andGitHub 1c793deece Lower log level of CSND::ExecuteCommands stub warning (#7163) 2023-11-13 13:34:56 -08:00
Steveice10andGitHub 5118798c30 mic: Refactor microphone state and management. (#7134) 2023-11-12 13:03:07 -08:00
Vitor KandGitHub 222b1cc0d7 arm_dyncom: remove reference nullptr comparison (#7151) 2023-11-11 11:52:40 -08:00
fa08df21a5 Android UI Overhaul Part 1 (#7108)
* android: Android 14 support

* android: New home UI flow

Port of the yuzu-android home UI with a few Citra specific tweaks.

A few important things to note
- New and existing Citra users will be guided through the new setup flow
- Existing game directory location is discarded and will have to be reselected
- Protections around making sure the user has selected a user directory were reworked to fit this new UI. I removed async directory init and DirectoryStateReceivers and check during MainActivity's onResume callback.
- Removed Citra premium. The light/dark theme is now available for everyone.

* android: New blue app theme

* android: Extend UI into status/navigation bar area

* android: Remove yellow theme specific styles

* android: Disable status/navigation bar contrast enforcement

We handle it ourselves so there's no need to use a contrasty background on the system bars

* android: GPU Driver Manager

Includes a rewrite of FileUtil with some helper functions for the manager

* android: Rework NativeLibrary in Kotlin

Besides the rewrite this cleans up the alert dialogs that are used for system errors. Generally removes unused JNI code and makes things a little more consistent.

* android: Home menu support + downloader

* android: Enable minify and resource shrinking

* android: Remove premium page and expose texture filtering modes

* android: Update AGP to 8.1.2

* android: Don't display emulation in cutout area

We don't currently handle the notch properly in the emulation fragment so just don't render under it for now.

* android: native.cpp ClangFormat fixes

* core: SystemTitles: Include std::optional

Without it, the android build would fail

* vk: android: Properly override GetDriverLibrary

* vk_instance: Blacklist timeline semaphore ext on turnip

* vk_platform: Hardcode apiVersion to VK_API_VERSION_1_3

* android: native: Use const where applicable

* android: native: Array pointer access style fix

* android: Share relevant log

Shares the old log if it exists and you haven't booted a game yet and shares the current log if you have booted a game.

* android: Apply dark theme color for software keyboard text

---------

Co-authored-by: GPUCode <geoster3d@gmail.com>
2023-11-10 15:16:54 -08:00
GPUCodeandGitHub 3f1f0aa7c2 arm: De-virtualize ThreadContext (#7119)
* arm: Move ARM_Interface to core namespace

* arm: De-virtualize ThreadContext
2023-11-06 17:55:30 -08:00
Steveice10andGitHub 9b2a5926a6 frontend: Use inverted use_gles as a fallback for GL initialization. (#7117) 2023-11-05 17:23:54 -08:00
GPUCodeandGitHub 998b9a9525 kernel: Add ticks to low priority threads that arbitrate zero threads (#7096) 2023-11-05 00:20:55 +02:00
Steveice10andGitHub 09ee80f590 file_sys: Replace commented log lines from previous PR with trace logs. (#7109) 2023-11-04 20:37:55 +05:30
PabloMK7andGitHub 4284893044 Implement RomFS cache and async reads. (#7089)
* Implement RomFS cache and async reads.

* Suggestions and fix compilation.

* Apply suggestions
2023-11-02 17:19:00 -07:00
PabloMK7andGitHub 597a2e8ead Add missing FS:USER functions (#7051) 2023-10-31 14:01:25 -07:00
Steveice10andGitHub 07839fb3ce qt: Add option to uninstall a game. (#7064)
* qt: Add option to uninstall a game.

* Address review comments.
2023-10-14 18:11:59 -07:00
PabloMK7andGitHub 897d1fa957 Implement more HTTP:C functionality (#7035)
* Implement missing http:c functionality.

* More implementation details and cleanup.

* Organize code

* Disable treat errors as warnings for httplib

* Fix defines

* Remove pragmas that do nothing and mark as SYSTEM

* Make httplib system

* Try to fix issue from httplib

* Apply suggestions

* Fix header ordering

* Fix compilation issue

* Create and use ctx.CommandID()

* Add and use Common::TruncateString

* Apply more suggestions

* Apply suggestions

* Fix compilation

* Apply suggestions

* Fix format

* Revert SplitURL to previous version

* Apply suggestions
2023-10-11 10:09:16 -07:00
SachinVinandGitHub 1acb03b579 dsp_dsp.cpp: fix registering Interrupt handler on loading savestates (#7055) 2023-10-10 12:52:57 -07:00
PabloMK7andGitHub 6264b6d43c Use RunAsync in multiple socket operations (#7053)
* Use RunAsync in multiple socket operations

* EOF newline

* Fix linux compilation

* Fix compilation on macos
2023-10-09 14:59:08 -07:00
Castor215andGitHub f5b8888686 externals: allow user to use system fmt (#7052) 2023-10-07 16:00:02 -07:00
SachinVinandGitHub 72ff0c5337 AudioCore: Refactor DSP interrupt handling (#7026) 2023-10-04 15:44:59 +02:00
PabloMK7andGitHub 9ec4954380 Add HLERequestContext::RunAsync (#7027) 2023-10-02 11:09:27 -07:00
TobiasandGitHub 1492d73ccb frd: Stub several functions (#7010)
* mii: Improve mii data variable naming

* frd: Stub several functions

Allows the friend applet to open successfully.

* frd: Address review comments
2023-09-29 20:27:15 -07:00
Vitor KandGitHub 6cfb8e02a8 clang format (#7017) 2023-09-27 13:42:19 -03:00
Steveice10andGitHub 327a00b4d5 externals: Update fmt. (#7015) 2023-09-27 03:29:13 -07:00
Steveice10andGitHub 003a4ec09b gsp: Downgrade StoreDataCache log to trace. (#7006)
* gsp: Downgrade StoreDataCache log to trace.

* gsp: Mark StoreDataCache parameters as maybe_unused
2023-09-22 09:15:31 -07:00
28c542c2c2 build: Fix compiling citra-qt for iOS. (#6983)
* build: Fix compiling citra-qt for iOS.

* Update src/citra_qt/configuration/configure_general.cpp

Co-authored-by: Tobias <thm.frey@gmail.com>

---------

Co-authored-by: Tobias <thm.frey@gmail.com>
2023-09-17 16:07:56 -07:00
GPUCodeandGitHub d1c16bad78 code: Remove save state compatibility checks (#6980) 2023-09-16 15:22:10 -07:00
dfa2fd0e0d Add vulkan backend (#6512)
* code: Prepare frontend for vulkan support

* citra_qt: Add vulkan options to the GUI

* vk_instance: Collect tooling info

* renderer_vulkan: Add vulkan backend

* qt: Fix fullscreen and resize issues on macOS. (#47)

* qt: Fix bugged macOS full screen transition.

* renderer/vulkan: Fix swapchain recreation destroying in-use semaphore.

* renderer/vulkan: Make gl_Position invariant. (#48)

This fixes an issue with black artifacts in Pokemon games on Apple GPUs.
If the vertex calculations differ slightly between render passes, it can
cause parts of model faces to fail depth test.

* vk_renderpass_cache: Bump pixel format count

* android: Custom driver code

* vk_instance: Set moltenvk configuration

* rasterizer_cache: Proper surface unregister

* citra_qt: Fix invalid characters

* vk_rasterizer: Correct special unbind

* android: Allow async presentation toggle

* vk_graphics_pipeline: Fix async shader compilation

* We were actually waiting for the pipelines regardless of the setting, oops

* vk_rasterizer: More robust attribute loading

* android: Move PollEvents to OpenGL window

* Vulkan does not need this and it causes problems

* vk_instance: Enable robust buffer access

* Improves stability on mali devices

* vk_renderpass_cache: Bring back renderpass flushing

* externals: Update vulkan-headers

* gl_rasterizer: Separable shaders for everyone

* vk_blit_helper: Corect depth to color convertion

* renderer_vulkan: Implement reinterpretation with copy

* Allows reinterpreteration with simply copy on AMD

* vk_graphics_pipeline: Only fast compile if no shaders are pending

* With this shaders weren't being compiled in parallel

* vk_swapchain: Ensure vsync doesn't lock framerate

* vk_present_window: Match guest swapchain size to vulkan image count

* Less latency and fixes crashes that were caused by images being deleted before free

* vk_instance: Blacklist VK_EXT_pipeline_creation_cache_control with nvidia gpus

* Resolves crashes when async shader compilation is enabled

* vk_rasterizer: Bump async threshold to 6

* Many games have fullscreen quads with 6 vertices. Fixes pokemon textures missing with async shaders

* android: More robust surface recreation

* renderer_vulkan: Fix dynamic state being lost

* vk_pipeline_cache: Skip cache save when no pipeline cache exists

* This is the cache when loading a save state

* sdl: Fix surface initialization on macOS. (#49)

* sdl: Fix surface initialization on macOS.

* sdl: Fix render window events not being handled under Vulkan.

* renderer/vulkan: Fix binding/unbinding of shadow rendering buffer.

* vk_stream_buffer: Respect non coherent access alignment

* Required by nvidia GPUs on MacOS

* renderer/vulkan: Support VK_EXT_fragment_shader_interlock for shadow rendering. (#51)

* renderer_vulkan: Port some recent shader fixes

* vk_pipeline_cache: Improve shadow detection

* vk_swapchain: Add missing check

* renderer_vulkan: Fix hybrid screen

* Revert "gl_rasterizer: Separable shaders for everyone"

Causes crashes on mali GPUs, will need separate PR

This reverts commit d22d556d30ff641b62dfece85738c96b7fbf7061.

* renderer_vulkan: Fix flipped screenshot

---------

Co-authored-by: Steveice10 <1269164+Steveice10@users.noreply.github.com>
2023-09-13 01:28:50 +03:00
GPUCodeandGitHub 0b0d3a4ac3 gpu: Correct display transfer output with vertical flip+crop lines (#6952) 2023-09-11 00:30:06 +03:00
Steveice10andGitHub 93c7c6a995 service: Downgrade some spammy logs to trace level. (#6936) 2023-08-30 19:19:38 +02:00
Steveice10andGitHub 04aeecabcf arm: Do not try to access null page table. (#6930) 2023-08-27 17:26:31 +02:00
Steveice10andGitHub f2e0748a22 build: Enable link time optimization in release builds. (#6887) 2023-08-26 11:15:13 -07:00