Nintendo Switch Emulator
Go to file
Zephyron 14378f5c16 nvnflinger: Implement reference counting for binder objects
Implements proper reference counting for binder objects based on the official
documentation. This adds both weak and strong reference counting support to
the IBinder interface and its implementations (BufferQueueProducer and
BufferQueueConsumer).

The implementation follows the documented behavior where:
- type 0 affects weak references
- type 1 affects strong references
- During initialization: {addval=1, type=0} followed by {addval=1, type=1}
- For onFirstRef: {addval=1, type=1}
- For onLastStrongRef: {addval=-1, type=1}

Reference counters are implemented using std::atomic to ensure thread safety.

REFS: switchbrew.org/wiki/Nvnflinger_services#AdjustRefcount
2025-05-11 14:29:04 +01:00
.ci Move repos 2024-12-20 15:14:11 +00:00
.github Move repos 2024-12-20 15:14:11 +00:00
.reuse android: Provide debug.keystore for debug and relWithDebInfo builds 2024-01-21 22:08:07 -05:00
CMakeModules ui(QT): QT 6.7.3 Implementation 2025-05-11 12:17:03 +01:00
dist shader_recompiler: Add stubs for CSM/FCSM flow test conditions 2025-05-11 12:17:03 +01:00
externals memory: Improve null pointer and unmapped memory handling 2025-05-11 12:17:03 +01:00
hooks chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
LICENSES general: fix trailing whitespace 2024-01-08 09:34:32 -05:00
src nvnflinger: Implement reference counting for binder objects 2025-05-11 14:29:04 +01:00
tools Removed telemetry and anonymized SCM (git) strings 2024-12-20 15:24:57 +00:00
.codespellrc core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
.git-blame-ignore-revs Skip git blame 2023-11-04 18:26:49 +00:00
.gitattributes chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
.gitignore android: Initialize defaults for each orientations 2023-06-14 16:35:58 -04:00
.gitmodules Updated Vulkan stuff for bug fixes and improved hardware compatibility (#21) 2024-12-20 15:24:57 +00:00
CMakeLists.txt Add QT Network package 2025-05-11 12:17:03 +01:00
Doxyfile chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
LICENSE.txt chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
README.md Fixed controller UI being cut off at the bottom 2024-12-20 15:24:57 +00:00
vcpkg.json fix: update vcpkg baseline to avoid VS2019 build tools 2025-05-11 12:17:03 +01:00


yuzu

yuzu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.
It is written in C++ with portability in mind.

Note

This is an unofficial mirror fork of the original repository.

Development | License

  • Fixed controller UI being cut off at the bottom

Development

Most of the development happens on Codeberg. It's also where our central repository is hosted.

Git history will be rewritten frequently as patches are added and removed from other forks

License

yuzu is licensed under the GPLv3 (or any later version). Refer to the LICENSE.txt file.