JMC47
0a3aac6d85
Merge pull request #14043 from iwubcode/custom_resource
...
VideoCommon: separate the concept of a 'resource' from an 'asset', add Material/Shader loading
2025-12-22 17:08:02 -05:00
JMC47
0e06f5d632
Merge pull request #14114 from jordan-woyak/freelook-config-cleanup
...
Core: Eliminate FreeLookConfig by putting the "active config" within FreeLookCamera.
2025-12-22 13:30:12 -05:00
JMC47
cd99d48859
Merge pull request #14056 from jordan-woyak/cached-blob-reader
...
Core/DiscIO: Add a setting to load games into memory.
2025-12-22 13:29:05 -05:00
JosJuice
807488caf9
Merge pull request #14066 from Biendeo/master
...
IOS: Logitech USB Microphone Basic Support
2025-11-25 23:12:39 +01:00
Biendeo
07324ca067
USB: Add emulated Logitech USB Microphone
...
Co-authored by: supermilkdude67 <w.f.s.jazzfyre@gmail.com >
2025-11-25 10:40:30 +11:00
iwubcode
5c00f07074
VideoCommon: update resource manager with a material/shader/and texture(+sampler) resource to show the complexities that warrant the resource manager system
2025-11-23 11:08:50 -06:00
iwubcode
93a6cc80b4
VideoCommon: add some helper functions for resource logic that generates invalid textures for when a texture isn't provided for a custom asset
2025-11-23 11:04:24 -06:00
iwubcode
8016e2cfbd
VideoCommon: move ApplyDriverBugs for the normal pipeline out into a utility function, add a way to hash the pipeline (using the vertex declaration instead of the native vertex format)
2025-11-23 11:04:24 -06:00
iwubcode
989ecca235
VideoCommon: add a texture pool for resource management
2025-11-23 11:04:24 -06:00
iwubcode
2d21a99205
VideoCommon: separate the concept of a 'resource' from an 'asset'. A resource is potentially multiple assets that are chained together but represent one type of data to the rest of the system. An example is a 'material'. A 'material' is a collection of textures, a custom shader, and some metadata that all comes together to form what the concept of the material is. There will be a 'material' resource. For now, start small by introducing the interface and change our texture loading which used assets from the old resource manager, to an actual resource.
2025-11-23 11:04:24 -06:00
Jordan Woyak
d7c3513eae
DiscIO: Add CachedBlobReader which takes another BlobReader and reads it into memory in the background.
2025-11-23 05:17:22 -06:00
Jordan Woyak
d25742fe8b
Common: Introduce a OneShotEvent class. Unlike Common::Event, OneShotEvent is safe in situations when being immediately destructed.
2025-11-18 14:19:21 -06:00
JosJuice
f9601dc38c
Jit: Extract immediate handling to separate ConstantPropagation class
...
Restructuring things in this way brings two immediate benefits:
* Code is deduplicated between Jit64 and JitArm64.
* Materializing an immediate value in a register no longer results in us
forgetting what the immediate value was.
As a more long-term benefit, this lets us also run constant propagation
as part of PPCAnalyst, which could let us do cool stuff in the future
like statically determining whether a conditional branch will be taken.
But I have nothing concrete planned for that right now.
2025-11-16 09:50:31 +01:00
Jordan Woyak
be95035cc4
Core: Eliminate FreeLookConfig by putting the "active config" within FreeLookCamera.
2025-11-12 18:01:53 -06:00
Jordan Woyak
405baed805
Common: Add a DirectIOFile class that allows for copies which are entirely thread safe.
2025-11-09 03:08:14 -06:00
Jordan Woyak
46369ef1b1
Common: Add AtomicMutex and SpinMutex classes as faster alternatives to std::mutex.
2025-11-02 20:45:55 -06:00
JMC47
1d9c743ef7
Merge pull request #13975 from iwubcode/shader_includes
...
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-11-02 13:17:28 -05:00
cristian64
f5012ef457
Core/HW: Add Broadband Adapter (IPC).
...
This is a hassle-free BBA option intended for local play with multiple
Dolphin instances running *in the same system*. After selecting
**Broadband Adapter (IPC)** in the **SP1** slot in the GameCube section
in the settings, games that support LAN play will be able to discover
each other, without requiring third-party software or relatively complex
TAP setups.
The implementation is based on cpp-ipc, a high-performance inter-process
communication library that uses shared memory as transport layer.
Supported platforms are:
- [x] Linux
- [x] Windows
- [ ] macOS (cpp-ipc does not support this platform)
- [ ] FreeBSD (cpp-ipc does not support this platform)
- [ ] Android (cpp-ipc needs some adjustments; while it could work,
launching two Dolphin instances within the same Android system may be
both challenging and impractical)
2025-10-28 18:50:59 +00:00
iwubcode
96fe6a1575
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-10-26 22:47:23 -05:00
iwubcode
440999d778
VideoCommon: update material asset to support render state properties, support multi-pass, and textures are now split out (as well as supporting a way to calculate sampler origin)
2025-08-23 15:17:49 -05:00
Tillmann Karras
fa4127b145
VideoSW: reuse Common::Vec2/3/4
2025-08-10 05:17:26 +01:00
Jordan Woyak
bfef65a9d1
BTReal: Implement Realtek Bluetooth firmware loading.
...
Logic and structures are largely taken from Linux source:
drivers/bluetooth/btusb.c
drivers/bluetooth/btrtl.c
drivers/bluetooth/btrtl.h
2025-07-23 19:58:25 -05:00
Joshua Vandaële
4ae195ee60
USBUtils: Refactor USB device handling
2025-07-23 03:26:25 +02:00
Admiral H. Curtiss
68713e08b4
Common: Move GetDeviceProperty() into its own header
...
Otherwise we include Windows headers in the entire codebase through CommonFuncs.h
2025-07-19 21:24:51 +02:00
Jordan Woyak
350ec54779
BTReal: Improvements:
...
Separate LibUSB logic into LibUSBBluetoothAdapter class.
Submit transfers on thread with proper timing.
Throttle before ACL input for reduced input latency.
Immediately send IPC replies for outgoing data.
Continuously submit libusb transfers to fill HCI/ACL input queues.
Simplify endpoint handling and state saving.
Other cleanups.
2025-06-28 18:54:16 -05:00
iwubcode
d940d62cae
VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures)
2025-06-06 23:03:02 -05:00
iwubcode
70abcb2030
VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com >
2025-06-06 23:03:02 -05:00
iwubcode
d8ea31ca46
VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions
2025-06-06 23:03:02 -05:00
iwubcode
2ae43324cb
VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later
2025-06-06 23:03:02 -05:00
iwubcode
7d59c2743d
Common: Add class 'FilesystemWatcher' that is used to watch paths and receive callbacks about filesystem level events for anything under that path
2025-06-06 23:03:02 -05:00
iwubcode
d7de49ccf6
Core / VideoCommon: Remove original custom asset loader
2025-06-06 19:20:25 -05:00
Sepalani
1ac40f25a2
IOS/USB: Emulate Wii Speak using cubeb
...
Based on @noahpistilli (Sketch) PR:
https://github.com/dolphin-emu/dolphin/pull/12567
Fixed the Windows support and the heisenbug caused by uninitialized
members.
Config system integration finalized.
2025-05-07 20:33:22 +04:00
Sketch
451e36defc
IOS/USB: Emulate Wii Speak (OpenAL)
...
Credits to @degasus and shuffle2 (godisgovernment):
https://github.com/degasus/dolphin/tree/wiispeak
2025-05-07 17:45:59 +04:00
Jordan Woyak
e403dee3da
Common: Add MoveOnlyFunction.
2025-04-27 20:07:13 -05:00
Tilka
fe307a06c6
Merge pull request #13476 from jordan-woyak/sdl-header
...
InputCommon: Move SDL Device class into its own cpp/h files.
2025-04-25 01:49:52 +01:00
Jordan Woyak
ac76deaef0
Merge pull request #13529 from jordan-woyak/StateBuffer
...
Core/State: Avoid unnecessarily value-initializing large buffers.
2025-04-22 16:30:51 -05:00
JosJuice
e468e2359a
IOS: Only have one USBScanner
...
Some games open two USB interfaces, e.g. /dev/usb/oh0 and /dev/usb/hid.
This was causing us to run two scanning threads at once, using up more
CPU time for scanning than we need to.
2025-04-21 21:57:49 +02:00
JosJuice
427e9c5ad2
IOS: Move USB scanning thread to new class USBScanner
2025-04-21 21:25:35 +02:00
Zopolis4
660232a12c
Preliminary implementation of the Triforce Baseboard
2025-04-21 22:05:25 +10:00
Jordan Woyak
12dcd6c285
Common: Add UniqueBuffer and SharedBuffer templates.
2025-04-19 17:13:40 -05:00
Jordan Woyak
17c994df2a
InputCommon: Move SDL Device class into its own cpp/h files.
2025-03-30 23:23:06 -05:00
JMC47
ad3650abfc
Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
...
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
Sam Belliveau
f09ba10daa
AudioCommon: Added Granular Synthesis
2025-03-14 01:22:35 -05:00
Jordan Woyak
5b36c13bfb
VideoCommon: Rename Renderer to EFBInterface.
2025-03-12 21:09:16 -05:00
mitaclaw
1e5e9219cd
Common: Create Range Projections For std::pair
2025-03-09 13:19:41 -07:00
Aneesh Maganti
803241c64b
Core: Add TimePlayed class to track game playtime
...
Creates TimePlayed class and implemented constructors, AddTime, GetTimePlayed, and Reload methods. Updates CMakeLists.txt and DolphinLib.props as appropriate.
2025-02-16 23:15:11 +01:00
mitaclaw
6f10acea3f
Common: Create "Contains.h" Algorithm Header
...
The new `Common::Contains` and `Common::ContainsSubrange` function objects mirror C++23's `std::ranges::contains` and `std::ranges::contains_subrange`, respectively.
2025-01-01 09:52:01 -08:00
mitaclaw
ca9222a16b
Move UICommon/Disassembler to Common/HostDisassembler
...
A preliminary commit for a cleaner diff and an easier review
2024-10-19 00:14:54 -07:00
mitaclaw
c431cd2e1e
CachedInterpreter: Callback Disassembler
2024-10-19 00:14:53 -07:00
mitaclaw
f79520a906
Cached Interpreter 2.0
...
It now supports variable-sized data payloads and memory range freeing. It's a little faster, too.
2024-07-23 14:06:21 -07:00