Commit graph

7781 commits

Author SHA1 Message Date
SachinVin ddc802d2b4 android: add canary and nightly flavours + fix git version tags 2022-08-24 22:01:33 +05:30
GPUCode 13f38e0be5
citra_qt: Update error messages
Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>
2022-08-23 19:54:15 +03:00
GPUCode 64e7f5929d
gl_rasterizer: Fix build on MacOS 2022-08-23 16:48:19 +03:00
Ian Chamberlain 24b54a9b01
Follow convention and break in default case 2022-08-23 08:22:17 -04:00
Ian Chamberlain 401336c5e7
Rename Close() -> RequestClose() 2022-08-22 18:11:26 -04:00
emufan4568 12f84e18dc externals: Upgrade glad to latest version
* Also change some mentions to OpenGL 3.3 to 4.3
2022-08-22 23:44:03 +03:00
emufan4568 7bcf753a21 renderer_opengl: Apply styling suggestions 2022-08-22 13:13:41 +03:00
GPUCode 6109935b73
gl_rasterizer: BindCubeFace is const
Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>
2022-08-22 11:11:28 +03:00
emufan4568 31e6b553dc video_core: Run clang format 2022-08-22 08:00:30 +03:00
GPUCode f478e3093f rasterizer_cache: Drop warning in IntervalHasInvalidPixelFormat to debug 2022-08-22 07:59:04 +03:00
GPUCode cc5a88a864 rasterizer_cache: Make cache reset on resolution/filter change more explicit 2022-08-22 07:58:04 +03:00
GPUCode 14aea56fa1
pixel_format: Constexpr implies inline 2022-08-21 21:57:33 +03:00
emufan4568 2ed89b6448 cached_surface: Add missing include 2022-08-21 17:47:47 +03:00
emufan4568 9b5230c60e rasterizer_cache: Always create TextureDownloaderES
* It's used when dumping textures on desktop, so create it upfront to avoid null checks
2022-08-21 13:35:06 +03:00
emufan4568 1579f96397 rasterizer_cache: Remove remaining OpenGL code 2022-08-21 13:32:02 +03:00
emufan4568 fc450edd14 gl_rasterizer: Fix minor warnings and improve readability 2022-08-21 12:42:32 +03:00
emufan4568 e6137d7874 renderer_opengl: Remove GLvec* types
* The common types already exist and provide all the functionality required, why invent new types?
2022-08-21 12:22:58 +03:00
Ian Chamberlain c634c263db
citra-sdl: use the result of system.RunLoop()
If a shutdown was requested by the application, close the SDL window,
initiating the normal shutdown procedure. This causes a graceful exit
process instead of hanging.
2022-08-20 20:49:59 -04:00
emufan4568 e834f2b049 gl_resource_manager: Fix bug when allocating 3D textures 2022-08-21 02:24:13 +03:00
emufan4568 2726fe66db renderer_opengl: Header cleanup
* Should help with building times
2022-08-21 02:22:57 +03:00
emufan4568 07a69b7c7b renderer_opengl: Remove amd hacks and legacy paths
* AMDs new driver fixed many issues in the OpenGL driver. No reason to
  keep these hacks. In addition the upgrade to 4.3 guarantees the
  existance of required extensions, so no need to check for them
2022-08-21 01:52:49 +03:00
emufan4568 025cd31420 video_core: Bump OpenGL version to 4.3 on desktop
* The current backend heavily depends on many extensions for shadow
  rendering and texture cubes in the fragment shaders. All these
  extensions were incorporated to core in 4.3. Support is practically
  ubiquitous and requiring support for it makes things a lot easier
2022-08-21 01:39:16 +03:00
emufan4568 17ad594a62 rasterizer_cache: Introduce TextureRuntime and separate CachedSurface
* This commit aims to both continue the rasterizer cache cleanup by
  separating CachedSurface into a dedicated header and to start weeding
  out the raw OpenGL code from the cache.

* The latter is achieved by abstracting most texture operations in a new
  class called TextureRuntime. This has many benefits such as making it easier
  to port the functionality to other graphics APIs and the removal of the need
  to pass (read/draw) framebuffer handles everywhere. The filterer and
  reinterpreter get their own sets of FBOs due to this, something that
  might be a performance win since it reduces the state switching
  overhead on the runtime FBOs.
2022-08-21 01:16:48 +03:00
emufan4568 199671301d rasterizer_cache: Header cleanup and copyright date update 2022-08-21 01:16:48 +03:00
emufan4568 f6e3bb54f4 rasterizer_cache: Move utlities and type to separate headers 2022-08-21 01:16:48 +03:00
emufan4568 0fedf11be1 rasterizer_cache: Move depth tuples to cpp file 2022-08-21 01:16:47 +03:00
emufan4568 22acfe4d41 rasterizer_cache: SurfaceParams interface cleanup 2022-08-21 01:16:47 +03:00
emufan4568 cb0816c987 rasterizer_cache: Compute width and height only when used
Solves the compiler warning
2022-08-21 01:16:47 +03:00
emufan4568 6a7d601e42 rasterizer_cache: Factor morton swizzle and pixel format to dedicate headers
* Makes the code cleaner in general by not having to alias PixelFormat and SurfaceType everywhere
2022-08-21 01:16:47 +03:00
emufan4568 efc2db4088 rasterizer_cache: Separate into common directory 2022-08-21 01:16:42 +03:00
SachinVin 58d0705f0f
Merge pull request #6090 from JosJuice/android-cheats
android: Add cheat GUI
2022-08-14 18:14:40 +05:30
SachinVin 9ba1d68ba3
Merge pull request #6083 from pawelniegowski/amd-22-7-makecurrent-shader-bugfixes
Fix MakeCurrent and shader issues with AMD 22.7 driver
2022-08-14 18:14:26 +05:30
pawelniegowski b0c72c2ea7 revert GLSL version change 2022-08-10 16:36:23 +02:00
JosJuice 5180122506 android: Add cheat GUI
Based on https://github.com/dolphin-emu/dolphin/pull/10092,
with adaptations made for differences in how Citra handles cheats.

You can access the cheat GUI while a game is running.
2022-08-06 08:19:18 +02:00
JosJuice ce07ef1821 android: Use correct encoding when converting strings
The JNI functions that have "UTF" their name use "modified UTF-8"
rather than the standard UTF-8 that Citra uses, at least according
to Oracle's documentation, so it is incorrect for us to use them.
This change fixes the problem by converting between UTF-8 and
UTF-16 manually instead of letting JNI do it for us.
2022-08-03 15:54:15 +02:00
JosJuice 87677be921 android: Create utility function for converting strings to Java 2022-08-03 15:45:11 +02:00
JosJuice e65ca8b907 android: Deduplicate GetJString 2022-08-03 15:45:11 +02:00
pawelniegowski ce441237cf
Update src/core/frontend/emu_window.h
clang-format

Co-authored-by: BreadFish64 <mohror64@gmail.com>
2022-08-01 09:07:23 +02:00
pawelniegowski ff81fb04b4 Fix MakeCurrent and shader issues with AMD 22.7 driver 2022-07-29 12:26:18 +02:00
Ian Chamberlain 6764264488
Initialize GAMECONTROLLER in EmuWindow_SDL2 (#6078)
Resolves #6077

If only `SDL_INIT_JOYSTICK` is used, `InputCommon::SDL::SDLState` later tries to initialize the game controller in a background thread, which on macOS causes a crash in `SDL_PumpEvents`. From [the SDL docs](https://wiki.libsdl.org/SDL_Init), `SDL_INIT_GAMECONTROLLER` implies `SDL_INIT_JOYSTICK`, so this should be a total superset of the previous behavior.
2022-07-28 20:51:53 +05:30
Diego Arias 357025dfdf
loader: check for overflow of seg_sizes[] in 3dsx loader (#6075) 2022-07-23 21:57:55 +05:30
Z11-V 2b2868f156
screenshot fixes (#6070)
* screenshot fixes

* formatting

* disable screenshot on pause
2022-07-23 21:57:32 +05:30
merry 2d95b9946f
framebuffer_layout: Fix positioning of small screen when centered in landscape on mobile (#6071) 2022-07-17 17:49:55 +05:30
BreadFish64 353aaaf665
Merge pull request #6010 from SachinVin/gunman
shader_jit: Fixes for Gunman clive
2022-07-06 23:45:44 -05:00
Z11-V 19d97e4180
added quick screenshot (#6025)
Modified Capture screenshot to save screenshots with a timestamped name in the user directory.
2022-07-06 21:51:01 -05:00
SachinVin d84b3d9330
Merge pull request #6053 from Morph1984/assert-noinline
common/assert: Use noinline lambda instead of a wrapper template
2022-07-03 11:50:50 +05:30
Morph edbe7600f5 common/assert: Use noinline lambda instead of a wrapper template
MSVC now supports specifying __declspec on lambda functions
2022-06-30 08:58:36 -04:00
Morph 49c0ed297f common_funcs: Add CITRA_NO_INLINE 2022-06-14 07:18:12 -04:00
Vitor Kiguchi bc5bf28333 webservice: change naming on android as well 2022-06-11 11:44:49 +02:00
Vitor Kiguchi 28188f13f5 remove dedicated_room dependence on core 2022-06-11 10:21:18 +02:00
Vitor Kiguchi fa0cb52a5d Move webservice settings to own file 2022-06-11 10:21:17 +02:00
SachinVin 88a4759702
citra_qt: configure_input.cpp: update the modifier settings for both the sticks (#6033)
The Controller config UI exposes the Circle mod, only for the Circle pad's modifier, So after changing the binding, it leaves the default binding for the c-stick untouched, and the user is nagged about the (default) D key being bound to something, when trying to bind it to any other button.

With this PR we update the modifier for both the Circle Pad and C-stick.
2022-06-11 11:53:27 +05:30
liushuyu 8d603032f8
web_service: infect other targets with OpenSSL exports ...
... this can avoid the missing symbol issue when linking
2022-06-08 01:22:11 -06:00
Pengfei Zhu f453fddbde
Add configure_enhancements.ui to CMakeLists.txt
This was omitted, which seemed to be preventing this tab from being translated.
2022-06-06 13:47:07 +08:00
SachinVin b7c1c21019
Merge pull request #6030 from Daisouji/daisouji-midnight-theme
Adding Midnight Theme
2022-06-04 14:10:05 +05:30
BreadFish64 6f6a9357c2
Merge pull request #6023 from Morph1984/c4267
general: Enforce C4267 warning on MSVC
2022-06-01 19:40:35 -05:00
SachinVin 65611e5b51 Shader jit: Save and restore LOOPCOUNT_REG for nested loops,
also add the assert back for nested loops
update test
2022-05-21 11:24:32 +05:30
scribblemaniac a6e7a81de9
Use cubic mapping for volume control (#6020)
* Use cubic mapping for volume control

* Update comment for hardware volume slider
2022-05-20 22:47:37 +05:30
Morph 77ce1c8f14 CMakeLists: Enforce C4267 on MSVC 2022-05-18 00:05:41 -04:00
Morph adcc786ef2 tests: Resolve C4267 warning on MSVC 2022-05-18 00:05:41 -04:00
Morph 0d955c452b citra_qt: Resolve C4267 warning on MSVC 2022-05-18 00:05:41 -04:00
Morph de1374c1b9 video_core: Resolve C4267 warning on MSVC 2022-05-18 00:05:41 -04:00
Morph 3a43475149 core: Resolve C4267 warning on MSVC 2022-05-18 00:05:41 -04:00
Morph 4e73ff3978 input_common: Resolve C4267 warning on MSVC 2022-05-18 00:05:41 -04:00
Morph 1cc1c33a15 common: Resolve C4267 warning on MSVC
Also removes Timer::GetDoubleTime() as it is unused.
2022-05-18 00:05:40 -04:00
Daisouji 577b4fe4e9 Adding Midnight_Blue to themes
Add files via upload

Removed refresh and view_refresh
2022-05-17 09:48:02 -04:00
scribblemaniac 44e1f2319f
Improve tab ordering (#6019) 2022-05-13 20:36:09 +05:30
SachinVin b6ff58a9d6 FileUtil, Frontends: Fix updating custom NAND/SDMC path 2022-04-30 15:53:45 +05:30
SachinVin 047e238d09 shader_jit: Compile nested loops
and use `T_NEAR` instead of the default in Compile_BREAKC
2022-04-24 23:12:53 +05:30
feos 1382035d4d
explicitly set timebase for video stream (#6005)
fixes #5965
2022-04-23 21:53:53 +05:30
bunnei 4a9995ab9f
Merge pull request #6004 from SachinVin/android-5-java-dump
Android dump
2022-04-21 23:00:42 -07:00
SachinVin c86c96467a jni\CMakeLists.txt: Sort library list 2022-04-18 23:40:54 +05:30
SachinVin 9c695c8324 Android: rename android JNI from main to citra-android 2022-04-18 13:10:25 +05:30
SachinVin c800a9e44c src/CmakeLists.txt: Android: Prefer target_include_directories over include_directories 2022-04-18 13:09:08 +05:30
SachinVin 46880e8d54 Android : Bump gradle version 2022-04-16 13:05:50 +05:30
SachinVin 5681e91cf7 Android: remove async GPU until it is fixed on desktop 2022-04-14 20:44:59 +05:30
SachinVin cd4ef8611c build.gradle: Bump Cmake version and NDK version 2022-04-14 20:44:58 +05:30
SachinVin 0e347605e1 Android: log device info and settings 2022-04-14 20:44:58 +05:30
SachinVin 0af8406e44 Common: Add CPU feature detection for ARM64 2022-04-14 20:44:57 +05:30
SachinVin f1c2f63aa1 Android: Java + JNI dump
CmakeLists

Jni Fix
2022-04-14 20:44:57 +05:30
PabloMK7 593b0b2d8f
Add svcGetSystemInfo 0x20000 to get citra information (#5955) 2022-04-14 19:58:44 +05:30
tcoyvwac ac7285c904
citra_qt: prefer standard algorithms (#5995)
qt_multimedia_camera.cpp:
Prefer std::generate over ranged-for loop.
2022-04-14 19:58:25 +05:30
SachinVin b5ac9e4946
Backport non-seperable disk shader from android (#5976)
* VideoCore: Backport Shader cache for non separable shaders

android: disk_shader_cache: remove redundant lookup

* disk_shader_cache: dont compile dumped shaders

* cleanup Seperable shader loading

* gl_shader_disk_cache.cpp: remove redundant checks

* Skip compiling non seperable raws

* gl_shader_manager.cpp: Skip `GLAD_GL_ARB_get_program_binary` check on GLES
2022-04-02 11:57:14 +05:30
SachinVin ac98458e0b
audio_core\lle\lle.cpp: Add 16 bit and 32 bit read/write callbacks (#5968) 2022-03-05 12:38:46 +05:30
benstephens56 c8a7185444
Convert Input Count to Frame Count (#5954)
* Convert Input Count to Frame Count

While recording or playing a movie file, the left side of the status bar currently displays an input counter which shows how many times the emulator has polled for button inputs during the movie. This information is far less easily understandable and less useful for TASing compared to a frame count. The frame count has a linear relationship with input count that can be expressed with Frame Count = 0.255689103308912 * Input Count. Simply put, instead of having a counter that goes up by 3 or 4 every frame, this makes it a counter that goes up by exactly 1 every frame.

* Update movie.cpp

* Update movie.cpp

* Fixing clang-format errors

* Update movie.cpp

Did not realize that the frame rate was defined as a constant somewhere in the source code. This makes this conversion far less sketchy.

* Update movie.cpp
2022-03-05 12:38:35 +05:30
liushuyu c7869ff332
audio_core/hle/ffmpeg_decoder: make avcodec const 2022-02-21 00:51:17 -07:00
liushuyu 04f201ab34
dumping/ffmpeg_backend: add support for ffmpeg 5.0 2022-02-20 04:07:10 -07:00
Mai M 54a36bc54f
fs_user: Resolve sign conversion warning in GetPriority() (#5396)
Prevents a -Wsign-compare warning from occurring.
2022-02-19 09:49:16 +05:30
bunnei 62753e882e
Merge pull request #5448 from zhaowenlan1779/rerecording
Implement basic rerecording features
2022-02-18 20:29:36 -07:00
bunnei bae1c31406
Merge pull request #5718 from liushuyu/httpc
externals: update httplib and libressl
2022-02-05 02:59:18 -07:00
bunnei e3804a4c06
Merge pull request #5786 from vitor-k/macos-perms
Request Camera Permission on MacOS
2022-02-05 02:58:38 -07:00
Johel Ernesto Guerrero Peña e04d904b2b
fix(net): prevent gibberish padding on linux client (#5941) 2022-02-05 11:23:48 +05:30
SachinVin 2fc7def6f6
Merge pull request #5395 from lioncash/gsp
gsp_gpu: Resolve sign conversion warnings
2022-01-30 21:55:24 +05:30
SachinVin f66ba43e0c
Merge pull request #5755 from vitor-k/mod_used
citra_qt/configure_input: Account for analog buttons when checking for used buttons
2022-01-30 21:52:40 +05:30
SachinVin d35a7a8e23
Merge pull request #5804 from weihuoya/minorfx
Minor fx
2022-01-30 21:51:11 +05:30
SachinVin 4e15823db2
gl_format_reinterpreter.cpp: fallback to PBO path on obsolete intel drivers (#5928) 2022-01-24 14:14:28 +05:30
zhang wei afa7f4996f
fx bgr write back on gles (#5924) 2022-01-24 14:14:12 +05:30
liushuyu af24f75c18
externals: update httplib and libressl ...
* In older `httplib`, SSL connections were not handled correctly and
  will have issues with proxy servers. Also, keep alive directives were
  not available back then, which is probably necessary to implement
  HTTP_C service correctly.
* Another reason being `httplib` now requires OpenSSL 1.1+ API while
  LibreSSL 2.x provided OpenSSL 1.0 compatible API.
* The bundled LibreSSL has been updated to 3.2.2 so it now provides
  OpenSSL 1.1 compatible API now.
* Also the path hint has been added so that it will find the correct
  path to the CA certs on *nix systems.
* An option is provided so that *nix system distributions/providers can
  use their own SSL implementations when compiling Yuzu/Citra to
  (hopefully) complies with their maintenance guidelines.
* LURLParse is also removed since `httplib` can handle
  `scheme:host:port` string itself now.
2022-01-13 19:32:50 -07:00
Vitor Kiguchi 8b0a6b9d5e macos permission: address review comments 2022-01-10 15:30:41 +01:00
Vitor Kiguchi 7bbc94d428 macos: request permission for microphone usage 2022-01-10 14:38:49 +01:00