Commit Graph
100 Commits
Author SHA1 Message Date
Pengfei ZhuandGitHub 3d3dd2d162 Merge pull request #6275 from zhaowenlan1779/tx-migrate
dist/languages: Migrate to new tx client
2023-02-02 16:51:13 +08:00
Pengfei Zhu 99c3eb21b0 dist/languages: Migrate to new tx client 2023-02-01 14:57:12 +08:00
Pengfei ZhuandGitHub 9d5ae8e1c2 service/nwm_uds: Add NetworkStatusChangeReason (#5377)
fixes https://github.com/citra-emu/citra/issues/3975
2022-12-17 16:03:59 +01:00
Pengfei ZhuandGitHub 3bb027ac12 Merge pull request #6042 from zhaowenlan1779/translation-fix
Add configure_enhancements.ui to CMakeLists.txt
2022-06-06 15:56:53 +08: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
zhupengfeiandSachinVin 84844e1b24 gl_shader_util: Specify default precision for uimage2D
Otherwise, this causes the application to crash when compiling any shader, on both devices I tested.
2021-10-02 16:38:18 +05:30
Pengfei ZhuandGitHub 19617f7edb dsp_interface: Move sink to the last in member list (#5844)
So that it is destructed first. Otherwise, the TimeStretcher will be destructed before the Sink, which might cause segfaults when the Sink tries to read data from the TimeStretcher afterwards.
2021-09-20 22:40:36 +05:30
Pengfei ZhuandGitHub 647a6f8d82 Merge pull request #5817 from zhaowenlan1779/ncch-fix
Replace `&vec[0]` with `vec.data()`
2021-07-19 06:41:06 +08:00
Pengfei f85bde3ca3 Replace &vec[0] with vec.data()
When the vector is empty, using `&vec[0]` involves undefined behaviour. While that works fine most of the time, Flatpak builds aborted on a failed `__builtin_expect`.

I searched for such occurences across the codebase with the regex `(?<!&)&\w+\[0\]` and fixed those that would potentially cause issues.
2021-07-14 17:01:14 +08:00
Pengfei ZhuandGitHub afed4953bc Merge pull request #5807 from zhaobot/tx-update-20210701011712
Update translations (2021-07-01)
2021-07-06 18:11:05 +08:00
Pengfei ZhuandGitHub 5241032fc5 Merge pull request #5382 from zhaowenlan1779/uds-2
service/nwm_uds: Various improvements/corrections
2021-06-22 20:40:18 +08:00
zhupengfeiandVitor Kiguchi e6e6f4fbe1 Add descriptions for camera and microphone usage on macos
Starting from macOS 10.14, users need to grant permissions for applications to use media capture (camera and microphone).

The application *must* provide a description in its Info.plist or it will be terminated due to privacy violation upon attempting to initialize camera/microphone.

Ideally these two strings should be translated, but since this is not really compatible with Qt's localization system and likely requires separate configuration, I'm currently not that interested in messing with it.
2021-05-12 03:40:14 -03:00
Pengfei ZhuandGitHub 8e3c7674d8 Merge pull request #5644 from liushuyu/master
bootmanager: fix memory leaks when loading save states
2021-03-06 16:23:24 +08:00
Pengfei ZhuandGitHub e770fd6e95 Merge pull request #5707 from vitor-k/mod-scale
configure_input: fix modifier scale saving
2021-02-08 13:14:19 +08:00
zhupengfei 996ca25a2e core_timing: Lock CoreTiming event queue while deserializing
To handle those classic asymmetric constructor/destructor side effects
2021-02-08 11:25:39 +08:00
zhupengfei b2531310b4 Minor improvements to the UX
1. Game will now be paused on movie finish
2. Added 'Save without Closing'
2021-02-08 11:25:38 +08:00
zhupengfei f8eb9a541d citra_qt: Fix potential indeterminstism caused by starting record/playback
Previously the movie was started *after* core starts running, causing potential indeterminism.

Some desyncs are still not fixed; they may be caused by core timing. More investigation is required.
2021-02-08 11:25:38 +08:00
zhupengfei e60e20666e citra_qt: Allow enabling frame advance before emulation start
Effectively allows starting emulation as paused.
2021-02-08 11:25:37 +08:00
zhupengfei d6b64f6b09 citra_qt: Simplify movie recording code
The behavior shouldn't be changed.
2021-02-08 11:25:36 +08:00
zhupengfei 1780f8b5b8 core/movie: Add MovieFinished mode
Also mentioned in Laws of TAS.
2021-02-08 11:25:35 +08:00
zhupengfei e188f86582 core/movie: Add future event and timeline check
As specified in TASVideos [Laws of TAS](http://tasvideos.org/LawsOfTAS/OnSavestates.html)
2021-02-08 11:25:34 +08:00
zhupengfei b6f8cc884f citra: Update SDL frontend 2021-02-08 11:25:33 +08:00
zhupengfei fb14bd956a citra_qt: Add indicator in status bar
Since we do not have an overlay yet, it can be confusing whether movie is being recorded or played. This makes it clear.

Status messages (e.g. system archive missing) will be overriden, but that shouldn't be too important when recording movies.

Doubled the status bar updating frequency to provide a better experience. It now updates every second.
2021-02-08 11:25:32 +08:00
zhupengfei 113e0c7331 citra_qt: Rebuilt movie frontend
This is completely rebuilt, in order to allow setting author, displaying movie metadata, and toggling read-only mode.

The UX is changed to more closely match other emulators' behaviour. Now you can only record/play from start/reset (In the future, we might want to introduce 'record from savestate')

Also fixed a critical bug where movie file can be corrupted when ending the recording while game is still running.
2021-02-08 11:25:31 +08:00
zhupengfei 5a42a80f40 core/movie: Allow setting a playback completion callback
Instead of specifying it when starting playback. This is necessary as
you can end up playing the movie even if you started as Recording
(for example, loading a state in R/O mode will switch to Playing mode)
2021-02-08 11:25:30 +08:00
zhupengfei 06bc37a67d core/movie: Remove program ID checks
Most other emulators handle this automatically in the frontend,
booting/restarting the corresponding game instead of reporting an error.
Therefore, remove these checks and errors from the module.
2021-02-08 11:25:29 +08:00
zhupengfei bd88667247 core/movie: Add a few fields
These fields are included in most emulators and required by TASVideos.

`input_count` is implemented by counting the number of 'PadAndCircle' states, as this is always polled regularly and can act as a time/length indicator.
TASVideos also require the input count/frame count to be verified by the emulator before playback, which is also implemented in this commit.
2021-02-08 11:25:28 +08:00
zhupengfei ebaa225bcb core: Add read-only mode and separate savestate slots for movies
The read-only mode switch affects how movies interact with savestates after you start a movie playback and load a savestate. When you are in read-only mode, the movie will resume playing from the loaded savestate. When you are in read+write mode however, your input will be recorded over the original movie ('rerecording'). If you wish to start rerecording immediately, you should switch to R+W mode, save a state and then load it.

To make this more user-friendly, I also added a unique ID to the movies, which allows each movie to have an individual set of savestate slots (plus another set for when not doing any movies). This is as recommended by staff at TASVideos.
2021-02-08 11:25:27 +08:00
Pengfei ZhuandGitHub 7c6d7905a4 Merge pull request #5670 from FearlessTobi/port-5277
Port yuzu-emu/yuzu#5277: "general: Fix various spelling errors"
2021-01-09 22:10:27 +08:00
Pengfei ZhuandGitHub 6f2bbbcced Merge pull request #5658 from FearlessTobi/cheat-window-flags
citra_qt/cheats: Make window resizable and remove help hint
2021-01-01 10:03:15 +08:00
Pengfei ZhuandGitHub 7ae0fc7338 Merge pull request #5626 from zhaowenlan1779/deliver-arg-fix
service/apt: Fix deliver arg hmac size
2020-12-05 06:49:53 +08:00
zhupengfei 8f0aebcd4f service/apt: Fix deliver arg hmac size 2020-11-28 08:52:35 +08:00
Pengfei ZhuandGitHub 21fb9d63f4 service/apt: Implement Deliver Args (#5611)
* service/apt: Add GetModule and GetAppletManager

These will be used to retrieve and set deliver args across system resets (which are currently implemented as complete restarts)

* applet_manager: Implement DeliverArg

`flags` was added to `ApplicationJumpParameters` as flags 0x2 is handled differently from 0x0.

* service/apt: Add ReceiveDeliverArg, implement GetStartupArgument

Some based on guesses.

* Address review comments
2020-11-24 20:10:31 +01:00
Pengfei ZhuandGitHub de3d7cf49f kernel/thread: Change owner_process to std::weak_ptr (#5325)
* kernel/thread: Change owner_process to std::weak_ptr

Previously this leaked almost all kernel objects. In short, Threads own Processes which own HandleTables which own maps of Objects which include Threads.

Changing this to weak_ptr at least got the camera interfaces to destruct properly. Did not really check the other objects though, and I think there are probably more leaks.

* hle/kernel: Lock certain objects while deserializing

When deserializing other kernel objects, these objects (`MemoryRegion`s and `VMManager`s) can possibly get modified. To avoid inconsistent state caused by destructor side-effects, we may as well simply lock them until loading is fully completed.

* Fix silly typo

Somehow this didn't break?!
2020-11-15 12:59:45 +01:00
Pengfei ZhuandGitHub 1bb20571b1 Merge pull request #5574 from FearlessTobi/port-4733
Port yuzu-emu/yuzu#4733: "qt/game_list: Give GameListSearchField::KeyReleaseEater a parent"
2020-10-14 10:09:45 -05:00
Pengfei ZhuandGitHub 1c8461fdea Merge pull request #5570 from FearlessTobi/port-4698
Port yuzu-emu/yuzu#4698: "General: Make use of std::nullopt where applicable"
2020-10-04 06:01:51 -05:00
Pengfei ZhuandGitHub aced133a3d Merge pull request #5565 from scarabeusiv/patch-1
Fix compilation with boost 1.74.0
2020-09-30 22:03:01 -05:00
zhupengfei faf9162dbd layered_fs: Make LoadFile and LoadDirectory less recursive
The deep recursion has caused issues in certain games with large numbers of files, especially with MSVC builds.

Previously the recursion depth is about equal to the number of files present. With this the depth should be about equal to the maximum depth of the directory structure of the RomFS.
2020-10-01 00:32:40 +08:00
Pengfei ZhuandGitHub df9e230d63 Merge pull request #5541 from zhaobot/tx-update-20200901011709
Update translations (2020-09-01)
2020-09-10 22:47:58 +08:00
Pengfei ZhuandGitHub df83449d21 Merge pull request #5549 from xperia64/squash_reg_warnings
Silence some noisy switch case warning
2020-09-10 22:26:45 +08:00
Pengfei ZhuandGitHub 6a77547bde Minor frontend fixes to savestates (#5430) 2020-09-03 00:04:23 +02:00
Pengfei ZhuandGitHub 2f01046f77 Merge pull request #5504 from xperia64/savestate_locale_fix
Don't translate save/load state hotkey text for the map
2020-09-01 22:42:17 +08:00
Pengfei ZhuandGitHub a39e0ea3b1 Merge pull request #5516 from encounter/qdropevent-fix
Avoid incorrect casts to QDropEvent
2020-09-01 22:27:37 +08:00
Pengfei ZhuandGitHub f72be7af2d Merge pull request #5497 from GMaxera/fix-broken-mac-os-travis-build
Use gtimeout on Mac OS job to incrementally build up ccache
2020-08-07 20:30:52 +08:00
Pengfei ZhuandGitHub c3673ac9cd Merge pull request #5468 from citra-emu/zhaowenlan1779-patch-1
Update scan_dll.py
2020-07-22 23:13:00 +08:00
Pengfei ZhuandGitHub 967f6500cf Update scan_dll.py
Fix the current crossbuilding issue
2020-07-22 21:55:39 +08:00
Pengfei ZhuandGitHub 835efd321e Merge pull request #5438 from zhaobot/tx-update-20200701011708
Update translations (2020-07-01)
2020-07-07 20:39:14 +08:00
Pengfei ZhuandGitHub 910cc9efc1 Merge pull request #5435 from FearlessTobi/port-4097
Port yuzu-emu/yuzu#4097: "Fix framebuffer size on fractional scaling display."
2020-06-29 21:46:26 +08:00
Pengfei ZhuandGitHub 16913feb44 Merge pull request #5273 from xperia64/frame_timing_tweak
Update FPS to roughly match the actual 3DS rate
2020-06-12 22:14:03 +08:00
Pengfei ZhuandGitHub 5b245aafd3 Merge pull request #5402 from xperia64/update_teakra_sync
Update teakra, adjust TeakraSlice for new audio frame period
2020-06-11 22:41:01 +08:00
Pengfei ZhuandGitHub 9b20ff0369 Merge pull request #5401 from xperia64/fix_pipe_read_size
Fix ReadPipeIfPossible Size
2020-06-11 22:37:50 +08:00
Pengfei ZhuandGitHub 2632b421c2 Merge pull request #5266 from xperia64/audio_ticks_tweak
Adjust audio_frame_ticks
2020-06-11 22:37:30 +08:00
Pengfei ZhuandGitHub 565e5988ef Merge pull request #5404 from xperia64/wmf_aac_bad
Fix WMF AAC Decoder Bug
2020-06-11 22:23:41 +08:00
Pengfei ZhuandGitHub e6ad0d390e Merge pull request #5381 from zhaowenlan1779/swkbd-another-fix
applets/swkbd: Properly handle button_text
2020-06-08 22:04:49 +08:00
Pengfei ZhuandGitHub edb5977fba Merge pull request #5400 from lioncash/count
fs/file: Make use of std::move where applicable
2020-06-07 23:00:08 +08:00
Pengfei ZhuandGitHub 1643cf5b86 Merge pull request #5398 from lioncash/call
am: Remove redundant c_str() calls
2020-06-07 22:57:40 +08:00
Pengfei ZhuandGitHub 0b307a86a6 Merge pull request #5394 from lioncash/uninit
cro_helper: Silence -Wuninitialized warning
2020-06-07 22:53:06 +08:00
Pengfei ZhuandGitHub dbd1a389ef Merge pull request #5393 from lioncash/signed
nwm: Eliminate signed conversion warnings
2020-06-07 22:52:18 +08:00
zhupengfei b34ceb89c5 nwm_uds: Change ASSERT to LOG_ERROR
This might be caused by some packet/status delay within the enet protocol, or may be caused by our not properly handling disconnection. Anyway, this situation *can* happen, and we should not crash Citra for a non-critical error.
2020-06-04 23:06:10 +08:00
zhupengfei 9965ce6938 nwm_uds: Make sure client node information match host's
This change is not HW tested as I do not have 3 3DSes, but this should make sure that all the members of the network hold the same `node_info`, `nodes` and the bitmasks, etc.
2020-06-04 22:18:39 +08:00
zhupengfei 4918f86622 service/nwm_uds: Ensure consistency regarding node IDs
Previously, when connecting, the host was using the incorrect node_id to update `node_info`.

This is an attempt to fix tywald's problem with MH, reported on Discord a while ago. I'm not sure if this would actually fix that though.
2020-06-04 22:18:21 +08:00
Pengfei ZhuandGitHub 81a1e5680f Merge pull request #5163 from z87/input-touch-mapping
input: allow mapping buttons to touchscreen
2020-05-31 22:23:02 +08:00
zhupengfei 46e8c38395 Use attribute instead of comment 2020-05-31 10:47:46 +08:00
zhupengfei 190a053987 applets/swkbd: Properly handle button_text
I'm not sure why we decided to have a boolean here, but apparently that wasn't the correct behaviour. According to HW tests, the Software Keyboard simply displays the default text when the button text provided is empty (**not necessarily all zero**). For example, if you set a text for one of the buttons and leave others empty, the button you set will have your text, while others will have their default texts. Removed the boolean and updated frontend code to make it correct.
2020-05-31 09:41:30 +08:00
Pengfei ZhuandGitHub 61c8ea3fe9 Merge pull request #5333 from lioncash/heap
fs_user: std::move vectors where applicable
2020-05-28 22:49:57 +08:00
Pengfei ZhuandGitHub c4ba7b3626 Merge pull request #5356 from xperia64/cubeb_avoid_leak
Avoid leaking cubeb input stream
2020-05-22 22:04:14 +08:00
Pengfei ZhuandGitHub 60669a7dd8 swkbd: Fix a bug where clicking Cancel hangs the game (#5294)
* swkbd: Fix a bug where clicking Cancel hangs the game

The text is validated in `Finalize`. If the validation fails, an error is returned and the applet is not actually finalized. This can result in hangs.

This is usually not a problem as the frontend is expected to validate the text passed to `Finalize`. However, when the user clicked on `Cancel`, the text is ignored and the frontend won't do any validation. Therefore, we should skip the validation here as well.

Also fixed a potential data race. All these functions should now be called on the same thread

* Address review comments

Renamed the fields
Remove close button
2020-05-04 11:31:17 +02:00
Pengfei ZhuandGitHub 41bff0e3b7 Merge pull request #5316 from lioncash/init
core: Resolve -Wreorder warnings
2020-05-02 15:42:31 +08:00
Pengfei ZhuandGitHub eb996f046d Merge pull request #5315 from lioncash/undef
soc_u: Prevent undefined behavior with CTRPollFD
2020-05-02 15:41:59 +08:00
Pengfei ZhuandGitHub 2476532f21 Merge pull request #5302 from lioncash/teak
CMakeLists: Specify EXCLUDE_FROM_ALL for teakra
2020-05-02 10:21:18 +08:00
Pengfei ZhuandGitHub e212dc3a1f Merge pull request #5297 from lioncash/missing
gl_rasterizer: Amend missing return value in branch in SetupGeometryShader()
2020-05-02 08:07:49 +08:00
Pengfei ZhuandGitHub 70a43be714 Merge pull request #5306 from lioncash/view2
file-sys: Make use of std::string_view where applicable
2020-05-02 08:07:10 +08:00
Pengfei ZhuandGitHub 8e7abecf7e Merge pull request #5307 from lioncash/guard
file_sys/seed_db: Add missing include guard
2020-05-02 08:04:58 +08:00
Pengfei ZhuandGitHub 5a008a74fa Merge pull request #5304 from lioncash/layered
layered_fs: Mark functions as static where applicable
2020-05-02 08:02:35 +08:00
Pengfei ZhuandGitHub 6907568034 Merge pull request #5309 from lioncash/dtor
applets: Make destructors virtual where applicable
2020-05-02 08:02:14 +08:00
Pengfei ZhuandGitHub 59984df603 Merge pull request #5308 from lioncash/rsa
core/hw/rsa: Minor cleanup
2020-05-02 08:01:58 +08:00
Pengfei ZhuandGitHub 4d7487bd34 Merge pull request #5298 from lioncash/unused
gl_rasterizer: Silence various compilation warnings
2020-05-01 23:34:36 +08:00
Pengfei ZhuandGitHub 037c857bd6 Merge pull request #5303 from lioncash/namespace
service/ir: Remove erroneous forward declaration
2020-05-01 23:04:01 +08:00
Pengfei ZhuandGitHub 017f0c469e Merge pull request #5301 from lioncash/chunk
common: Remove chunk_file.h
2020-05-01 23:02:47 +08:00
Pengfei ZhuandGitHub 6a0636d631 Merge pull request #5296 from lioncash/flatten
gl_rasterizer_cache: Flatten LoadCustomTexture()
2020-05-01 23:01:47 +08:00
Pengfei ZhuandGitHub 2eacb11c53 Merge pull request #5292 from lioncash/alloc
gl_shader_manager: Eliminate variable shadowing
2020-05-01 22:57:55 +08:00
Pengfei ZhuandGitHub 1bb9a71a01 Merge pull request #5291 from lioncash/trunc
renderer_opengl: Resolve compiler truncation warnings
2020-05-01 22:56:46 +08:00
Pengfei ZhuandGitHub c937876935 Merge pull request #5282 from FearlessTobi/free-bytes-fix
savedata_archive: Make GetFreeBytes return a more accurate value
2020-04-29 21:41:07 +08:00
Pengfei ZhuandGitHub 77ffe37c46 Merge pull request #5247 from lioncash/copy3
swrasterizer/proctex: Take regs by const reference
2020-04-24 22:07:03 +08:00
Pengfei ZhuandGitHub b96b7ab3f6 Merge pull request #5232 from lioncash/sign
core/memory: Resolve sign conversion in serialize()
2020-04-19 08:45:44 +08:00
Pengfei ZhuandGitHub 8967b403b9 Merge pull request #5196 from Subv/apt_sys_menu_arg
Services/APT: Implemented the Store/LoadSysMenuArg functions.
2020-04-18 13:24:10 +08:00
Pengfei ZhuandGitHub 47829ee095 Merge pull request #5213 from Subv/fs_resource
Services/FS: Stubbed GetSdmcArchiveResource and GetNandArchiveResource.
2020-04-18 13:22:21 +08:00
Pengfei ZhuandGitHub a1be6a4ffe Merge pull request #5190 from Subv/warnings
Warnings: Fixed a few warnings from various places
2020-04-12 12:44:32 +08:00
Pengfei ZhuandGitHub 680ef64aca Merge pull request #5157 from citra-emu/zhaowenlan1779-patch-1
flatpak: Update runtime version
2020-03-29 23:42:16 +08:00
Pengfei ZhuandGitHub 09da1dcf55 flatpak: Update runtime version
The docker image has been updated to 5.13 but the build script here wasn't. Maybe this was the issue preventing our flatpak from building recently
2020-03-28 23:10:45 +08:00
Pengfei ZhuandGitHub 3edc4a3055 service/ldr_ro: Fix CRO loading when the buffer contained multiple VM areas (#5125)
* vm_manager: Handle multiple areas in ChangeMemoryState

It is possible that a few areas have the same permisson and state, but with different backing pointers. Currently, this function assumes that only one continous area is found, but this is not always the case.

* service/ldr_ro: Handle multiple areas in VerifyBufferState

It is possible that the buffer passed from the game is made up of multiple areas with the same permisson and state but different backing pointers. Change the check to allow that.
2020-03-28 13:26:54 +01:00
Pengfei ZhuandGitHub 25ebf03c35 Merge pull request #5120 from zhaowenlan1779/file-write
service/fs: Update file size on write
2020-03-22 01:00:31 +08:00
zhupengfei b87a15c6b2 citra_qt: Only resume the game if it wasn't paused
When dumping was stopped, the game will be paused and then resumed. However when the game was already paused this will result in the game being unexpectedly resumed, which isn't what we want.
2020-03-22 00:56:57 +08:00
Pengfei ZhuandGitHub 8722b970c5 Merge pull request #5137 from jbeich/freebsd
Unbreak build on FreeBSD
2020-03-21 12:57:25 +08:00
zhupengfei 22bfa7b5de ffmpeg: Misc fixes
The most important one being adding a mutex to protect the format_context. Apparently it wasn't thread safe (as one'd expect) but I didn't think about that.

Should fix some of the strange issues happening with MP4 muxers, etc.
2020-03-21 12:02:21 +08:00
Pengfei ZhuandGitHub ad3c464e2d Merge pull request #5116 from zhaowenlan1779/cam-vsync
service/cam: Implement Vsync interrupt events
2020-03-12 10:42:39 +08:00
Pengfei ZhuandGitHub 6eecb082b3 Merge pull request #5115 from zhaobot/tx-update-20200301011703
Update translations (2020-03-01)
2020-03-12 10:42:09 +08:00
zhupengfei fc251b32b0 service/fs: Update file size on write
The file's size is stored in FileSessionSlot and retrieved when the game calls GetSize. However, it is not updated when the file is written to, which can possibly change the file size. Therefore, this can cause GetSize to return incorrect results.
2020-03-05 14:50:08 +08:00
Pengfei ZhuandGitHub 7afcc0d658 Merge pull request #5106 from GovanifY/master
gdbstub: Ensure gdbstub doesn't drop packets crucial to initialization
2020-03-03 23:53:28 +08:00
zhupengfei 28014496c6 Fix incorrect port_id use 2020-03-03 12:13:45 +08:00