Commit graph

7989 commits

Author SHA1 Message Date
Steveice10
54c499ed5b
Prepare for Vulkan backend (#6595)
* externals: Add libraries required for vulkan

* build: Add support for downloading bundled MoltenVK.

* ci: Install tools needed for Vulkan.

* citra_qt: Add API status indicator

---------

Co-authored-by: GPUCode <geoster3d@gmail.com>
2023-06-05 07:29:05 -07:00
GPUCode
5b7cc76ba3
Add warning popup when loading save states for the first time (#6565)
* citra_qt: Remove global state usage in GMainWindow

* citra_qt: Add warning when loadings saves for the first time

* citra_qt: Focus window when launching game from cmdline

* citra_qt: Cleanup nullptr checks

* citra_qt: Move setting to UISettings

* renderer_opengl: Remove header
2023-06-05 10:06:00 +03:00
Steveice10
52f88f8fb4
chore: Fix GCC 13 compilation and SoundTouch libraries being installed. (#6593) 2023-06-02 23:11:17 -07:00
Steveice10
abd949fea1
qt: Add NCCH secure 1/2 to keys needed for system titles download. (#6586) 2023-06-02 19:16:48 -07:00
Steveice10
f1ece7c56f
audio_core: Fix FDK and FFmpeg compile errors. (#6591) 2023-06-02 19:00:09 -07:00
Stuart Kenny
c67c648c1a
mmpx: Fix GLES crashes. (#6588) 2023-06-01 20:52:57 +05:30
Steveice10
723b662604
core: Update minimal system title set. (#6573) 2023-05-31 17:34:31 -07:00
Narr the Reg
e33a8a9b26
input_common: sdl: Port yuzu sdl fixes (#6577) 2023-05-31 13:01:46 +03:00
Steveice10
4ddb2116bf
qt: Allow toggling whether to enter system setup on home menu boot. (#6574) 2023-05-31 11:56:35 +03:00
Stuart Kenny
691e09473e
video_core: Add MMPX texture filter (#6564)
* video_core: Add MMPX texture shader

* mmpx: Apply mix to mask alpha edge artifacting

* mmpx: Do not use deprecated texture fuction.
2023-05-31 11:55:46 +03:00
Steveice10
b45c7188c7
chore: Fix some compiler warnings. (#6578) 2023-05-30 12:36:12 -07:00
SachinVin
a1d265325a
Merge pull request #6561 from SachinVin/audio
audio_core/hle: Refactor Binary Pipe data structures
2023-05-30 19:02:37 +05:30
SachinVin
1ede2f5b5a audio_core\hle\decoder.h: Minor correction in docs 2023-05-29 08:16:05 +05:30
kongfl888 K
b452b61e58
audio_core/hle/{fdk, ffmpeg}_decoder:fix typos. (#4) 2023-05-26 07:28:17 +05:30
Steveice10
848116b5be
audio_core: Dispose of current audio sink before opening new one. (#6567) 2023-05-26 00:44:56 +02:00
SachinVin
5311c939a2 tests/audio_core: add sanity test cases for LLE vs HLE 2023-05-25 20:23:21 +05:30
SachinVin
8cada619b3 audio_core/hle: Refactor Binary Pipe data structures
audio_core\hle\ffmpeg_decoder.cpp: renames
2023-05-25 20:23:19 +05:30
Rokkubro
72b82ef6ed
Enable web services on Android in Github build (#6555)
* Enable web services in android

* Fix web services build on android

* clang-format

* Remove unnecessary line

* Set telemetry to be disabled by default on all platforms
2023-05-23 21:36:14 +05:30
PabloMK7
2281bf5b0b
Add range check for renderer config (#6560) 2023-05-21 19:01:26 -07:00
PabloMK7
5c45c97ff9
Implement/Fix more SOC related functions (#6267)
* Implement SOC_U::GetHostByName and partial SOC_U::GetNetworkOpt

* Implement AC::GetWifiStatus, and get proper network interface.

* Minor fixes

* More minor fixes

* Even more fixes

* Fix Get/Set SockOpt

* Implement SendToOther

* Apply suggestions and fix timer advance

* Fix variable name

* Add more sockopt values and fix send/recv flags.

* Fix dontwait logic

* Add missing header for linux

* Remove TCP_STDURG

* Fix poll and add more 3ds <-> platform conversions

* Finish implementing all platform <-> 3ds conversion.

* Disable UDP connreset and fix poll again.

* Fix compile issues

* Apply suggestions

* Fix compiler issues

* Fix compiler errors (again)

* Fix GetAddrInfo

* Use IPC::MakeHeader instead of raw hardcoded value.
2023-05-21 19:01:08 -07:00
SachinVin
975ee15635 audiocore/{hle, lle}: remove dependence on static core timing 2023-05-20 21:27:22 +05:30
Steveice10
7d6c14e584
dumper: Fix pixel format for filters when passed in via encoder options. (#6553) 2023-05-19 10:58:05 -07:00
Steveice10
b89f5278ac
Revive: dumping/ffmpeg_backend: Various fixes (#6528)
* dumping/ffmpeg_backend: Add FPS filter

So that the recorded video can be at 60FPS (which is supported by most encoders) while still maintaining correct speed.

* dumping/ffmpeg_backend: Add HW context support

Required for some HW acceled encoders. Not tested as my devices don't seem to require this.

* CMake: Copy avfilter dll for MSVC

* CMakeLists: Require FFmpeg 4.0

* ffmpeg: Fix dumper compile error on MSVC.

* ffmpeg: Address review comments.

---------

Co-authored-by: zhupengfei <zhupf321@gmail.com>
2023-05-16 02:28:21 -07:00
Steveice10
0768bd8ce0
audio_core: Fix FDK AAC decoding. (#6530) 2023-05-14 19:50:07 -07:00
Steveice10
71a9981430
externals: Link SDL2 statically. (#6461) 2023-05-10 05:08:25 +02:00
Steveice10
d8e74a9ff4
audio_core: Implement Apple AudioToolbox AAC decoder. (#6510) 2023-05-09 16:35:49 -07:00
Steveice10
3a27603e3d
qt: Clear finishing key combinations for hot key entry on Qt 6.5+ (#6509) 2023-05-09 02:30:06 -07:00
GPUCode
b9d644b777
Fix additional reinterpretation nonsense (#6521)
* surface_params: Ensure pixel formats are not the same

* rasterizer_cache: Check copyable interval
2023-05-09 12:01:15 +03:00
GPUCode
f9ab0b3042
rasterizer_cache: Make reinterpretation stricter (#6515) 2023-05-07 23:13:01 +03:00
JosJuice
2e47afd48e
android: Open cheats by long pressing game in game list (#6491) 2023-05-07 16:01:34 +02:00
kongfl888 K
ebac6b17b0
qt/ui: Fix typos and warnings of duplicate variable names. (#6511) 2023-05-07 18:49:57 +05:30
SachinVin
b4db9aebf2
gl_shader_disk_cache.cpp: Flush transferable_file and precompiled_file more often (#6483) 2023-05-07 02:34:40 +03:00
GPUCode
2e655f73b8
Rasterizer cache refactor v2 (#6479)
* rasterizer_cache: Switch to template

* Eliminates all opengl references in the rasterizer cache headers
  thus completing the backend abstraction

* rasterizer_cache: Switch to page table

* Surface storage isn't particularly interval sensitive so we can use a page table to make it faster

* rasterizer_cache: Move sampler management out of rasterizer cache

* rasterizer_cache: Remove shared_ptr usage

* Switches to yuzu's slot vector for improved memory locality.

* rasterizer_cache: Rework reinterpretation lookup

* citra_qt: Per game texture filter

* rasterizer_cache: Log additional settings

* gl_texture_runtime: Resolve shadow map comment

* rasterizer_cache: Don't use float for viewport

* gl_texture_runtime: Fix custom allocation recycling

* rasterizer_cache: Minor cleanups

* Cleanup texture cubes when all the faces have been unregistered from the cache

* custom_tex_manager: Allow multiple hash mappings per texture

* code: Move slot vector to common

* rasterizer_cache: Prevent texture cube crashes

* rasterizer_cache: Improve mipmap validation

* CanSubRect now works properly when validating multi-level surfaces, for example Dark Moon validates a 4 level surface from a 3 level one and it works

* gl_blit_handler: Unbind sampler on reinterpretation
2023-05-07 02:34:28 +03:00
luc-git
322d7a8287
Textures loading screen (#6478)
* Add a loading screen for the preloading textures

*The PreloadTextures() function is called from the EmuThread to prevent citra to freezing

*Add a the preloading textures loadingscreen in loading_screen.cpp

*Add custom_tex_manager.reset() in core.cpp to release ram memory after exiting a game

* Add custom textures loading in EmuThread

* Remove useless variable

* Revert "Add custom textures loading in EmuThread"

This reverts commit 45ed46fa09.

* Moved include from bootmanager.h to bootmanager.cpp
2023-05-07 02:34:14 +03:00
JosJuice
62792b6b0e
android: Turn GameInfo into a class (#6494)
By only loading data from disk when creating an instance of this new
class instead of on every method call, we save a lot of file open
operations, which due to SAF are very expensive. This should noticeably
speed up game list scanning.

No intended change in what metadata is shown.
2023-05-06 14:40:11 +05:30
Steveice10
2b8610fcc4
qt: Update CMake translation targets. (#6506) 2023-05-06 11:09:00 +05:30
Steveice10
2273df4d70
qt: Migrate to Qt6. (#6418) 2023-05-05 03:10:34 -07:00
Vitor K
34de77d429
Various miscelaneous changes (#6496) 2023-05-03 17:24:10 +02:00
SachinVin
41f13456c0
Chore: Enable warnings as errors on MSVC (#6456)
* tests: add Sanity test for SplitFilename83

fix test

fix test

* disable `C4715:not all control paths return a value` for nihstro includes

nihstro: no warn

* Chore: Enable warnings as errors on msvc + fix warnings

fixes

some more warnings

clang-format

* more fixes

* Externals: Add target_compile_options `/W0` nihstro-headers and ...

Revert "disable `C4715:not all control paths return a value` for nihstro includes"
This reverts commit 606d79b55d.

* src\citra\config.cpp: ReadSetting: simplify type casting

* settings.cpp: Get*Name: remove superflous logs
2023-05-01 22:38:58 +03:00
Steveice10
055a58f01e
audio_core: Implement OpenAL backend (#6450) 2023-05-01 21:17:45 +02:00
SachinVin
ce553ab995
renderer_opengl: DrawSingleScreen*: remove duplicate code (#6426)
Co-authored-by: Tobias <thm.frey@gmail.com>
2023-05-01 16:27:42 +02:00
coop152
9dc71e3347
Fix broken label in touch mapping dialog (#6489) 2023-04-30 17:28:49 +02:00
luc-git
7327c334ca
Add cheats in per game configuration (#6379) 2023-04-30 16:36:02 +02:00
Steveice10
ea649263b7
build: Improvements to bundled libraries support. (#6435) 2023-04-28 13:02:53 -07:00
PabloMK7
63bc0b59bb
Use IPC:MakeHeader instead of hardcoded raw values for IPC command tables. (#6453)
* Use IPC:MakeHeader instead of hardcoded values for IPC command tables.

* Use u32 instead of unsigned int in MakeHeader function

Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>

* Fix clang format

---------

Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>
2023-04-27 22:31:03 -07:00
GPUCode
06f3c90cfb
Custom textures rewrite (#6452)
* common: Add thread pool from yuzu

* Is really useful for asynchronous operations like shader compilation and custom textures, will be used in following PRs

* core: Improve ImageInterface

* Provide a default implementation so frontends don't have to duplicate code registering the lodepng version

* Add a dds version too which we will use in the next commit

* rasterizer_cache: Rewrite custom textures

* There's just too much to talk about here, look at the PR description for more details

* rasterizer_cache: Implement basic pack configuration file

* custom_tex_manager: Flip dumped textures

* custom_tex_manager: Optimize custom texture hashing

* If no convertions are needed then we can hash the decoded data directly removing the needed for duplicate decode

* custom_tex_manager: Implement asynchronous texture loading

* The file loading and decoding is offloaded into worker threads, while the upload itself still occurs in the main thread to avoid having to manage shared contexts

* Address review comments

* custom_tex_manager: Introduce custom material support

* video_core: Move custom textures to separate directory

* Also split the files to make the code cleaner

* gl_texture_runtime: Generate mipmaps for material

* custom_tex_manager: Prevent memory overflow when preloading

* externals: Add dds-ktx as submodule

* string_util: Return vector from SplitString

* No code benefits from passing it as an argument

* custom_textures: Use json config file

* gl_rasterizer: Only bind material for unit 0

* Address review comments
2023-04-27 07:38:28 +03:00
Steveice10
d16dce6d99
externals: Update SoundTouch to upstream. (#6451) 2023-04-26 00:25:02 +02:00
GPUCode
227926c1fa
Remove remnants of separable shader setting (#6403) 2023-04-26 00:19:02 +02:00
SachinVin
000a616bd9
core\loader\ncch.cpp: skip parsing Region info, if user has already... (#6463) 2023-04-26 00:13:21 +02:00
GPUCode
2c74ed1a6d
Rasterizer refactor hotfixes (#6465)
* texture_codec: Clamp buffer end to tiled buffer size

* Fixes crash on Pokemon Super Mystery Dungeon

* rasterizer_cache: Use rect for duplicate surface

* Fixes broken bloom in fire emblem

* surface_params: Check levels for exact match

* It was removed previously to prevent copies when games used the base level of a multi level surface. FE on the other hand will first use the base level and then use it as a face of a cubemap with many levels. So instead check if the surface equal or more levels and consider it an exact match in that case

* gl_texture_runtime: Bind old tex to 2D target

* Fixes a small error opengl would print when creating texture cubes

* gl_blit_helper: Fix nearest filter

* Use texture unit 2 which has the nearest sampler bound
2023-04-23 22:46:08 +03:00