Commit Graph

7965 Commits

Author SHA1 Message Date
Narr the Reg 90bcf49db0
android: Clean up overlay controls and avoid triggering touch screen when a button is pressed (#6391) 2023-04-09 10:58:42 +05:30
Jake Downs bc5b065abe
android: replace jcenter with mavenCentral (#6417)
* replace jcenter with mavenCentral https://github.com/citra-emu/citra/issues/6232

* add back jcenter as fallback for billing
2023-04-09 10:55:37 +05:30
SachinVin 563c77154e
citra_qt/bootmanager.cpp: Fix scaling on QT with SW rasteriser (#6424) 2023-04-08 21:28:03 +05:30
SachinVin e4e9fb4aed
Merge pull request #6412 from GPUCode/wayland-oops
Port yuzu-emu/yuzu#7410: "Wayland fixes"
2023-04-08 16:51:56 +05:30
SachinVin 6a0baef239
Merge pull request #6410 from vitor-k/qt-vsync
citra_qt: fix vsync issues
2023-04-08 16:51:29 +05:30
Vitor K 8b93db0841
Updates to github actions (#6358) 2023-04-06 14:34:35 +02:00
Steveice10 287ce1e56f
kernel: Skip address range checks for privileged memory (un)map. (#6407) 2023-04-06 14:30:13 +02:00
hank121314 495e5dadd7
citra_android: fix config is getting overwritten by default (#6408) 2023-04-05 18:51:05 +02:00
hank121314 7d64c654cc
citra_android: fix select root as citra directory cause crash (#6400) 2023-04-05 18:50:53 +02:00
Ian Chamberlain 4cc181e5b8
Address review comments
Use more modern C++ style casts + std::array, clean up some log
messages, and rename some functions.
2023-04-05 12:41:17 -04:00
PolarZero 29aed69734
gl_rasterizer: HP Bar Fix for some games (#6334)
* HP Bar Fix for some games

Can fix #5139 #5563 and log spam

* HP Bar Fix for some games

Can fix #5139 #5563 and log spam

* Add TODO about HP Bar Fix
2023-04-04 20:32:14 +03:00
Ian Chamberlain 696c0904f8
Update some c-style casts -> reinterpret_cast 2023-04-04 13:21:25 -04:00
Ian Chamberlain 6e45de760e
Cleanup new code, add docs and error handling 2023-04-04 13:13:24 -04:00
SeleDreams 62d58f669a
kernel: Adjusted resource limits for more accuracy to the running 3DS model (#6393)
Co-authored-by: Tobias <thm.frey@gmail.com>
2023-04-04 19:03:08 +02:00
Steveice10 5f90c9816d
apt: Add stub for ns:c service. (#6409) 2023-04-04 19:01:37 +02:00
Ian Chamberlain 0d4c93d1c2
Undo some changes exposing unused functions 2023-04-04 12:20:41 -04:00
Steveice10 9cbefa468a
qt: Disable system update downloader in per-game settings. (#6402) 2023-04-03 22:59:56 +02:00
Vitor Kiguchi b4ef3cdeff bootmanager: set the surface format based on vsync 2023-04-03 17:25:39 -03:00
Vitor Kiguchi 5c50a26b38 bootmanager: make main_context a unique_ptr 2023-04-03 17:25:39 -03:00
Vitor Kiguchi 40849a8fa8 bootmanager: remove unnecessary includes 2023-04-03 17:25:39 -03:00
Vitor Kiguchi 4e0f78dfa0 citra_qt: fix vsync configuration being possible while a game is running 2023-04-03 17:25:39 -03:00
Alexander Orzechowski aac0e07d1e emu_window_sdl2: Respect hidpi
Use SDL_GL_GetDrawableSize instead of SDL_GetWindowSize which
will return the true size our swapchain needs to be in even
for hidpi displays.
2023-04-03 14:34:45 +03:00
Alexander Orzechowski 06c426883f OpenGL: Check for threading support
We need this.
2023-04-03 14:33:15 +03:00
GPUCode 71d4a85957 video_core: Disable async shader loading with strict contexts 2023-04-03 14:32:13 +03:00
Alexander Orzechowski 3846d0c2cd RenderWidget: Set WA_DontCreateNativeAncestors
Some windowing systems like wayland are designed to show hardware accellerated
surfaces as subsurfaces and not native windows.
2023-04-03 13:59:06 +03:00
Steveice10 041252ba36
file_sys: Attempt to open New 3DS variant NCCH if available. (#6383) 2023-04-02 08:57:56 +05:30
Steveice10 a74d7a0e6b
qt: Hide system titles with invisible or invalid SMDH data. (#6381) 2023-04-02 08:57:22 +05:30
Cameron Cawley 387cf15719
Remove unused includes (#6405) 2023-04-02 06:24:59 +05:30
Ian Chamberlain 351730d585
Fix infinite hang if GDB client kills gdbstub 2023-03-31 14:06:43 -04:00
Ian Chamberlain 83138e0c63
Fix some build + impl errors with HIO
After rebase there were some API changes, also fix continuation logic in
the main gdbstub.
2023-03-31 14:05:57 -04:00
Ian Chamberlain 33dde0d06b
Update default config example for log_filter
As far as I can tell, this log filter does not actually support
wildcards in the subclass.
2023-03-31 13:54:47 -04:00
SachinVin f96047f182
PlatformGamesFragment.java: Run PullToRefresh on a background thread (#6372)
* android: bump gradle to 7.4.2

* PlatformGamesFragment.java: Run `PullToRefresh` on a background thread
2023-03-30 15:13:40 +03:00
hank121314 979c6d9c55
citra_android: fix crash while load amiibo (#6373) 2023-03-30 15:13:20 +03:00
Steveice10 506644b9d6
video_core: Fix distance vector used when calculating lighting distance attenuation. (#6366) 2023-03-30 15:12:09 +03:00
GPUCode ffc95eb59b
Frontend PR fixes (#6378)
* citra_qt: Check if renderer is null

* core: Fix dynarmic use-after-free error

* bootmanager: Add current context check in DoneCurrent

* Loading a save state would destroy the frame dumper class, which contains a shared context. That context would call DoneCurrent without checking if it was actually bound or not, resulting in crashes when calling opengl functions

* externals: Correct glad readme

* common: Log renderer debug setting

* citra: Make lambda lower case

* Consistency with review comments on the PR

* video_core: Kill more global state

* GetResolutionScaleFactor would be called somewhere in the renderer constructor chain but it relies on the yet unitialized g_renderer, resulting in crashes when the resolution scale is set to auto. Rather than adding a workaround, let's kill this global state to fix this for good
2023-03-30 14:24:49 +03:00
Ian Chamberlain f92f494cab
Stop execution when performing HIO request
Since the HIO request is basically treated like a syscall, we need to
stop emulation while waiting for the GDB client to reply with the
result. This ensures any memory queries etc. that GDB makes to fulfill
the HIO request are accessing memory as it was at the time of the
request, instead of afterwards.
2023-03-29 09:09:32 -04:00
Ian Chamberlain b9c11e71d7
Fix ABI mismatch in packed HIO request
Using size_t etc. is incorrect, since these definitions are based on the
build machine which most likely has a different arch than the 3DS.
2023-03-29 09:09:32 -04:00
Ian Chamberlain 874bfebaf9
Add some notes + use stringstream to build packet 2023-03-29 09:09:32 -04:00
Ian Chamberlain 7de1bf3746
Properly parse incoming hio packet
This also does kind of a hacky way of sending HIO requests, since we
don't have a direct way of signaling a request should be sent like the
Rosalina implementation.

To improve this, it could probably do some kind of signal sending which
the main run loop handles instead of GDBStub::HandlePacket();
2023-03-29 09:09:32 -04:00
Ian Chamberlain 6f23ee43ae
Initial port of luma3ds' gdb_hio to Citra 2023-03-29 09:09:32 -04:00
Steveice10 5346ca27b5
Rework system title handling with up-to-date title list and region detection support. (#6356) 2023-03-29 13:55:29 +02:00
GPUCode b5d6f645bd
Prepare frontend for multiple graphics APIs (#6347)
* externals: Update dynarmic

* settings: Introduce GraphicsAPI enum

* For now it's OpenGL only but will be expanded upon later

* citra_qt: Introduce backend agnostic context management

* Mostly a direct port from yuzu

* core: Simplify context acquire

* settings: Add option to create debug contexts

* renderer_opengl: Abstract initialization to Driver

* This commit also updates glad and adds some useful extensions which we will use in part 2

* Rasterizer construction is moved to the specific renderer instead of RendererBase.
  Software rendering has been disable to achieve this but will be brought back in the next commit.

* video_core: Remove Init/Shutdown methods from renderer

* The constructor and destructor can do the same job

* In addition move opengl function loading to Qt since SDL already does this. Also remove ErrorVideoCore which is never reached

* citra_qt: Decouple software renderer from opengl part 1

* citra: Decouple software renderer from opengl part 2

* android: Decouple software renderer from opengl part 3

* swrasterizer: Decouple software renderer from opengl part 4

* This commit simply enforces the renderer naming conventions in the software renderer

* video_core: Move RendererBase to VideoCore

* video_core: De-globalize screenshot state

* video_core: Pass system to the renderers

* video_core: Commonize shader uniform data

* video_core: Abstract backend agnostic rasterizer operations

* bootmanager: Remove references to OpenGL for macOS

OpenGL macOS headers definitions clash heavily with each other

* citra_qt: Proper title for api settings

* video_core: Reduce boost usage

* bootmanager: Fix hide mouse option

Remove event handlers from RenderWidget for events that are
already handled by the parent GRenderWindow.
Also enable mouse tracking on the RenderWidget.

* android: Remove software from graphics api list

* code: Address review comments

* citra: Port per-game settings read

* Having to update the default value for all backends is a pain so lets centralize it

* android: Rename to OpenGLES

---------

Co-authored-by: MerryMage <MerryMage@users.noreply.github.com>
Co-authored-by: Vitor Kiguchi <vitor-kiguchi@hotmail.com>
2023-03-27 14:29:17 +03:00
SachinVin 9ef42040af
GameDatabase.java: Fix file exists check on SAF (#6374)
Doesn't really do much other than reduce log spam
2023-03-26 21:24:44 +03:00
Steveice10 d9d0fc63ec
applet: Fix HLE applet pre-start lifecycle. (#6362) 2023-03-25 22:36:14 +01:00
SachinVin 44097c2a8d
gl_shader_disk_cache: Avoid reopening files every time a shader need to be written. (#6344)
Hopefully reduces stutters with Android SAF
2023-03-25 23:35:17 +02:00
bunnei fdb7ab47ff
Merge pull request #6364 from Steveice10/break_error
kernel: Set system error status on svcBreak.
2023-03-25 01:18:26 -07:00
GPUCode c7f8bc5582 file_util: Check fd before using dup 2023-03-24 16:56:31 +02:00
Tobias 54385a54eb
citra_qt: Prevent OS sleep on Linux when a game is running (#6249) 2023-03-23 19:37:10 +01:00
Charles Lombardo 343717e683
citra_android: Implement edge-to-edge (#6349) 2023-03-23 19:36:54 +01:00
hank121314 8d563d37b4
citra_android: Storage Access Framework implementation (#6313) 2023-03-23 14:30:52 +01:00
Mai 8c12eb4905
Merge pull request #6360 from SachinVin/b
common\common_funcs.h:  use __builtin_trap for Crash()
2023-03-21 21:55:35 -04:00
Steveice10 f1c282775d kernel: Set system error status on svcBreak. 2023-03-21 14:19:42 -07:00
GPUCode 0c3fe272b6
citra_qt: Add enhancement options to per-game (#6308)
Co-authored-by: Tobias <thm.frey@gmail.com>
2023-03-21 22:12:13 +01:00
SachinVin 8434d30768 common\common_funcs.h: use __builtin_trap for `Crash()` 2023-03-21 22:34:06 +05:30
Steveice10 fbf53686c3
apt: Fix exiting to game list on application close. (#6353) 2023-03-21 17:07:49 +01:00
SachinVin 794d051f0c
common\CMakeLists.txt: add missing arch.h (#6359) 2023-03-21 17:06:28 +01:00
PabloMK7 3fb48716c5
CreateThread invalid processor ID return error instead of assert. (#6354) 2023-03-21 17:06:07 +01:00
Charles Lombardo 359a1b3296
citra_android: Fix input shifting in emulation activity (#6352) 2023-03-21 17:05:42 +01:00
GPUCode a2fd43deab
Revert "citra_android: Use androidx splash screen (#6355)" (#6357)
This reverts commit 27c280534d.
2023-03-17 10:34:00 +02:00
Charles Lombardo 27c280534d
citra_android: Use androidx splash screen (#6355) 2023-03-16 08:30:47 +02:00
Charles Lombardo e18e30a8cc
citra_android: Enable themed icon (#6351) 2023-03-15 09:21:54 +02:00
Vitor K 6fbc54b0c5
citra-qt: fixes to per game settings (#6298)
* citra-qt config: small misc changes

Remove unused ReadSettingGlobal

Remove unused WriteSetting overload

ReadGlobalSetting: rename default value variable

* qt config: fix u16 values being written as QMetaType

* qt config: rework post processing shader setting

handles post processing setting properly when per-game settings are used.
the anaglyph shader is given its own setting, separate from the post
processing name.

* qt config: use u32 instead of unsigned int when casting
2023-03-13 23:02:07 +02:00
Charles Lombardo 49acfe428a
citra_android: Bundle speex by default (#6348)
Without this, builds will fail on linux
2023-03-13 22:46:22 +02:00
hank121314 aa8df317af
citra_android: fix DiskShaderCacheProgress crash (#6346) 2023-03-13 11:16:38 +05:30
Steveice10 2cbf6fbb17
qt: Fix keys tutorial link in update downloader. (#6343) 2023-03-12 21:28:04 +05:30
DRayX 27be16ee31
Update AndroidManifest for Android TV (#6330) 2023-03-10 00:44:45 +01:00
Steveice10 c96f54f022
Implement app management support (suspend, resume, close, etc) (#6322) 2023-03-10 00:44:26 +01:00
Charles Lombardo d2caf2d386
citra_android: Start material 3 migration (#6335) 2023-03-09 23:22:11 +01:00
Charles Lombardo 1cca713e3b
citra_android: New settings fragment animations (#6332) 2023-03-09 21:54:32 +05:30
Steveice10 976995ba08
cfg: Set system setup complete flag when formatting save. (#6331) 2023-03-09 00:05:00 +01:00
Tobias 07e02a1acf
Port multiplayer related PRs from yuzu (yuzu-emu/yuzu#9661 and yuzu-emu/yuzu#9713) (#6319)
Co-authored-by: SoRadGaming <sohorhab.azizdel@outlook.com>
Co-authored-by: Luke Sawczak <luke@unfamiliarplace.com>
2023-03-08 00:51:46 +01:00
SachinVin c961ecb9a4
jni\native.cpp: Log `g_build_fullname` on Android (#6318) 2023-02-28 21:59:30 +05:30
Steveice10 c6f9fd3b65
qt: Remove status bar 3D controls due to issues. (#6317)
The 3D toggle does not behave correctly as it does not have some
special logic from the enhancements configuration UI that determines
the post-processing shader defaults to use. Because of that, plus
an uptick in people seemingly accidentally enabling 3D options and
not being sure why Citra is rendering differently, just remove the
new UI components for now until better ideas for 3D control can
be worked out.
2023-02-28 14:10:14 +02:00
Steveice10 3c15398f9e
apt: Implement additional applet state management. (#6303)
* apt: Implement additional library applet state management.

* kernel: Clear process handle table on exit.

* apt: Implement system applet commands.

* apt: Pop MediaType from command buffers with correct size.

* apt: Improve accuracy of parameters and HLE applet lifecycle.

* apt: General cleanup.

* file_sys: Make system save data open error code more correct.

Not sure if this is the exact right error code, but it's at least
more correct than before as Game Notes will now create its system
save data instead of throwing a fatal error.

* apt: Fix launching New 3DS Internet Browser.

* frd: Correct fix to GetMyScreenName response.
2023-02-28 14:09:54 +02:00
Tobias cc5ea21f1c
citra_qt: Write to config file on important config changes (#6311)
Qt isn't always writing changes on save. This causes config to be lost on crash. This PR ensures all changes are always saved on the file.

Ported from yuzu.

Co-authored-by: Narr the Reg <5944268+german77@users.noreply.github.com>
2023-02-25 12:57:59 +02:00
Tobias 286f750c6c
citra_qt: Move CPU speed slider to debug tab and Report Comptaibility to help menu (#6250) 2023-02-18 23:24:15 +01:00
SomeDudeOnDiscord d8c9335ef0
Resolve Black Screen on Intel GPU Regression (#6306)
* Get value for swap screen setting and check mono_render_option again

* resolve clang-format issue

* do not disable opengl blending since it is enabled by default

* reset blending state to default values after drawing second screen

* prevent resetting state blending when custom opacity is not used
2023-02-18 18:54:12 +02:00
Steveice10 cda358443f
nim: Fully stub nim:u service. (#6290) 2023-02-17 19:30:47 +01:00
Steveice10 bf73cb57ca
am: Return installed titles in GetNumTickets and GetTicketList stubs. (#6292) 2023-02-17 16:20:56 +02:00
komasanzura 9eb1cd2875
Added an option to set the proportion of the screens when using layout "Large Screen Small Screen", to allow the user to define how much bigger the large screen should be with respect to the smaller screen. Currently the value must be between 1 and 16, but I could set a different maximum value if that would be desired. Thank you very much! (#6252) 2023-02-17 16:19:52 +02:00
Steveice10 bb8dde8480
aes: Fix derivation of slot 0x25 key X from NATIVE_FIRM. (#6283) 2023-02-16 15:35:17 +02:00
Steveice10 5aa80873e2
qt: Enable application options for system applications. (#6286) 2023-02-15 21:24:54 +01:00
SachinVin 5215468ff6
core\file_sys\archive_sdmc.cpp: Log error message if file failed to open. (#6284) 2023-02-14 22:19:45 +01:00
Steveice10 68162c29b4
cfg: Initialize backlight controls config blocks. (#6291) 2023-02-14 22:10:07 +01:00
SomeDudeOnDiscord a8e4e11cd5
Better Support for Picture-in-Picture Custom Layouts (Based on #6127) (#6247) 2023-02-14 22:06:11 +01:00
Steveice10 1ab9b60a60
Services/APT: Implement PrepareToStartApplication, StartApplication, and WakeupApplication (#6280)
* Services/APT: Implemented PrepareToStartApplication and StartApplication.

This allows games to be launched from the Home Menu, however, there is still a bug with the GSP where the Home Menu doesn't release the GPU rights. It is unknown if the Home Menu should terminate itself after launching a new application.

To get the Home Menu to not hang when launching stuff, you need to have config block 0xF0006 (size 40 flags 8) in your config savegame, it doesn't matter if it's filled with zeros.

* Services/APT: Implement WakeupApplication.

With this, the Home Menu is now able to launch games when using an LLE NIM imlementation.

* Services/APT: Reset the app_start_parameters after launching the application with StartApplication.

* Services/APT: Simplify the StartApplication code by directly calling WakeupApplication.

---------

Co-authored-by: Subv <subv2112@gmail.com>
2023-02-12 08:47:08 +02:00
GPUCode c2903a6b9d
citra_qt: Hide updates on per-game config (#6296) 2023-02-12 08:45:43 +02:00
GPUCode 849d795f0e
Port yuzu-emu/yuzu#8367: "Logging: Report Post Windows 10 2004 versions, like Windows 11" (#6295)
Co-authored-by: Kyle K <190571+Docteh@users.noreply.github.com>
2023-02-11 23:22:58 +01:00
Morph 5eb72e9489
main: Enable High DPI fixes for Qt >= 5.14 (#6262)
Fixes https://github.com/citra-emu/citra/issues/4175
Fixes https://github.com/citra-emu/citra/issues/4977
2023-02-10 01:19:43 +01:00
Steveice10 6bef34852c
Add option to configure to download system files from Nintendo Update Service (#6269)
Co-authored-by: B3n30 <benediktthomas@gmail.com>
2023-02-09 21:58:08 +02:00
Steveice10 691cb43871
Add shortcuts and status bar widgets to toggle and set 3D factor (#6277) 2023-02-09 21:57:06 +02:00
Tobias f66d03dd48
citra_qt: Improvements to hotkeys and ui state management (#6224) 2023-02-04 19:06:20 +01:00
Colin E 9b49d94644
Lower log level of some sdmc logs (#6266) 2023-02-03 23:41:06 +01:00
Steveice10 78cb48b23c
common: Make TrimSourcePath constexpr (#6279) 2023-02-03 19:01:10 +01:00
Morph bb8cb3ff82
main: Globally disable the "?" button on dialogs (#6263)
Sets the AA_DisableWindowContextHelpButton attribute to disable this useless button globally. This is disabled by default on Qt6.
2023-01-28 21:38:15 +05:30
PabloMK7 0f6478a928
Fix crash when plugin has missing text section (#6264) 2023-01-27 15:06:35 +02:00
Steveice10 84e54a52a6
core: Detect and return error if GBA virtual console is loaded. (#6257) 2023-01-23 15:21:57 +05:30
Steveice10 d704c6a3ac
common: Support macOS application data path conventions. (#6258) 2023-01-23 15:20:50 +05:30
JosJuice 9b20bcea0f
android: Allow opening in-emulation menu by pressing Back (#6248)
It seems like the menu isn't showing up for users on Android 13.
We're not sure what's wrong, and the approach we've been using for the
menu hasn't been entirely reliable in the past either (in particular
not on non-mobile form factors like Chromebooks and VR devices),
so let's make it possible to open the menu by pressing Back,
an action that works reliably on most kinds of Android devices.
(Not sure if there's an equivalent of Back on devices like watches,
but I think we can pretty safely ignore those for now.)
2023-01-22 13:12:27 +05:30
PabloMK7 9c6035f254
Implement svcGetHandleInfo, svcOpenProcess/Thread, svcGetProcessList (#6243)
* Implement svcGetHandleInfo, svcOpenProcess/Thread, svcGetProcessList

* Apply suggestions

* Add comment to stubbed enum values in svcGetHandleInfo

* Revert u32 -> size_t
2023-01-15 21:50:54 +05:30