Morph
28d3661a5c
service: time: Fix CalculateStandardUserSystemClockDifferenceByUser
...
CalculateStandardUserSystemClockDifferenceByUser passes in the ClockSnapshots through 2 input buffers and not as raw arguments. Fix this by reading the 2 input buffers instead of popping raw arguments.
2021-04-07 23:34:14 -04:00
bunnei
262a70223f
Merge pull request #6143 from lat9nq/nvhost_null_memcpy
...
nvhost_ctrl_gpu: Avoid sending null pointer to memcpy
2021-04-07 16:50:22 -07:00
bunnei
535e50db1c
Merge pull request #6159 from Morph1984/acc-update-12.x
...
service: acc: Update service function tables
2021-04-07 14:37:59 -07:00
bunnei
d490f6dcf8
Merge pull request #6153 from lioncash/svcrange
...
process_capability: Handle extended SVC range
2021-04-07 13:01:40 -07:00
Morph
a2d40b8185
hwopus: Update to 12.x
2021-04-07 02:57:39 -04:00
Morph
1ad4c98a5c
IFile: Update to 12.x
2021-04-07 02:49:19 -04:00
Morph
c44db90ad1
fsp-srv: Update to 12.x
2021-04-07 02:46:29 -04:00
Morph
531e797795
dauth_o: Update to 11.x
2021-04-07 02:15:55 -04:00
Morph
ded420cfeb
acc_u1: Update to 12.x
2021-04-07 02:15:55 -04:00
Morph
63caeca6ba
acc_su: Update to 12.x
2021-04-07 02:15:55 -04:00
german77
4fe05d7b42
hid: Update service function tables
2021-04-07 01:15:38 -05:00
Morph
63ebf2a328
ISelfController: Update to 11.x
2021-04-07 02:00:19 -04:00
Morph
d04120169d
IApplicationFunctions: Update to 11.x
2021-04-07 01:59:35 -04:00
Morph
ad0d5818a6
IDebugFunctions: Update to 12.x
2021-04-07 01:53:04 -04:00
Morph
49ec5784b0
ICommonStateGetter: Update to 12.x
2021-04-07 01:53:04 -04:00
Morph
4cdc701fd3
IGlobalStateController: Update to 12.x
2021-04-07 01:53:04 -04:00
Morph
95fa89da27
IHomeMenuFunctions: Update to 12.x
2021-04-07 01:53:04 -04:00
Lioncash
530a5a1d09
Amend bizarre clang-format suggestions
2021-04-07 01:52:08 -04:00
Lioncash
1e964604bb
k_scoped_scheduler_lock_and_sleep: Mark class as [[nodiscard]]
...
Prevents logic bugs from slipping through.
2021-04-07 01:45:04 -04:00
Lioncash
c018769016
k_scoped_lock: delete copy and move assignment operators
...
If we delete the copy and move constructor, we should also be deleting
the copy and move assignment operators (and even if this were intended,
it would be pretty odd to not document why it's done this way).
2021-04-07 01:25:57 -04:00
Lioncash
bc30aa8249
k_scoped_lock: Mark class as [[nodiscard]]
...
Prevents logic bugs of the kind described in the previous commit from
slipping through.
2021-04-07 01:23:08 -04:00
Lioncash
97e2604575
k_scheduler: Mark KScopedSchedulerLock as [[nodiscard]]
...
Prevents logic bugs like:
KScopedSchedulerLock{kernel};
instead of:
KScopedSchedulerLock lk{kernel};
from slipping through.
2021-04-07 01:19:29 -04:00
ameerj
24900674b7
kernel: Increase event and session counts
...
12.x increased the number of available sessions and event resource counts
2021-04-07 01:01:05 -04:00
Lioncash
55fc808d64
svc: Expand SVC tables
...
12.x expanded the range of SVC entries from 0x7F to 0xBF (with all new
entries being unused), so we can expand it to also match.
2021-04-07 00:55:33 -04:00
Lioncash
03dda80e2b
process_capability: Handle extended SVC range
...
12.x extended the range of SVC IDs, so we need to expand the range of
bits that need to be tested.
The upside of this is that we can eliminate a range check, given the
whole range is used.
2021-04-07 00:35:49 -04:00
lat9nq
2cc42e40c5
nvhost_nvdec_common: Avoid memcpy with null pointers
...
Avoid sending null pointer to memcpy as reported by Undefined Behavious
Sanitizer.
Co-authored-by: LC <mathew1800@gmail.com>
2021-04-05 16:40:03 -04:00
lat9nq
638c892edf
nvhost_ctrl_gpu: Avoid sending null pointer to memcpy
...
Undefined Behaviour Sanitizer reports a null pointer is being sent to
memcpy, thought it's "guaranteed to never be null". Guard it with an if
statement, and log when the action has been averted.
2021-04-05 00:49:09 -04:00
Morph
aca6ab6417
Merge pull request #6131 from german77/rightjoyconSLSR
...
HID: Fix SL and SR buttons for right joycon
2021-04-02 15:48:04 -04:00
german77
eaf0c4af11
HID: Fix SL and SR buttons for right joycon
2021-04-02 09:03:11 -05:00
Morph
ca30190fad
ISelfController: Stub SetAlbumImageTakenNotificationEnabled
...
This service call sets an internal flag whether a notification is shown when an image is captured.
Currently we do not support capturing images via the capture button, so this can be stubbed for now.
2021-03-30 13:45:00 -04:00
ameerj
54c1e0897d
configuration: Add auto stub toggle that resets on boot
...
Auto-stub is an experimental debugging feature that may cause unforseen bugs. This adds a toggle to only allow auto-stubbing unimplemented functions when explicitly enabled when yuzu is launched.
2021-03-30 13:40:31 -04:00
ameerj
e6e61424d4
service: Auto stub fallback
...
For simple services we can implement an automatic stub fallback to help with compatibility until a proper implementation is done.
Co-Authored-By: Chloe <25727384+ognik5377@users.noreply.github.com>
2021-03-30 13:40:31 -04:00
Chloe Marcec
bf1c1788ca
nvdrv: Cleanup CDMA Processor on device closure
...
Brings us a step closer to unifying all channels to share a common interface.
2021-03-30 20:37:40 +11:00
Chloe Marcec
4930242c20
Addressed issues
2021-03-30 20:27:27 +11:00
bunnei
f234531f92
Merge pull request #6109 from german77/gestureID
...
HID: Initialize correctly the gesture finger_id and filter invalid inputs
2021-03-29 18:00:47 -07:00
bunnei
fb7dcbf7af
Merge pull request #6102 from ogniK5377/fd-pass
...
nvdrv: Pass device fd and handle device create methods for device opening and closing
2021-03-29 12:53:55 -07:00
bunnei
f8561c7a65
Merge pull request #6115 from bunnei/fix-kernel-init
...
hle: kernel: Initialize preemption task after schedulers.
2021-03-28 12:13:39 -07:00
bunnei
cb7f2e5616
hle: kernel: Initialize preemption task after schedulers.
...
- Fixes a startup crash that occurs if CoreTiming tries to preempt before kernel initialization completes.
2021-03-27 10:04:13 -07:00
Morph
3b98fab850
service: friend: Change logging class from ACC to Friend
2021-03-27 11:11:07 -04:00
german77
b2fb5c60e1
Friend: Stub GetPlayHistoryRegistrationKey
2021-03-27 08:25:36 -05:00
Narr the Reg
7c26a9aefe
HID: Initialize correctly the gesture finger_id and filter invalid results
2021-03-26 11:13:18 -06:00
Chloe Marcec
e9a1f29e93
pctl: Rework how pctl works to be more accurate
...
Introduces the usage of compatibilities to allow it the module to be closer to how it works on hardware.
2021-03-27 02:03:18 +11:00
Chloe Marcec
99fdfa1fcd
nvdrv: Pass device fd and handle device create methods for device opening and closing
...
We pass the fd to the ioctl as well as alert the device when it's opened or closed to allow for fd unique actions to take place
2021-03-25 12:56:42 +11:00
bunnei
10d6e9f32b
hle: kernel: Breakup InitializeMemoryLayout.
2021-03-23 18:47:16 -07:00
bunnei
fb91647bca
hle: kernel: k_memory_region_type: Minor code cleanup.
2021-03-23 18:42:04 -07:00
bunnei
4eac8703d2
hle: kernel: k_memory_region: Minor code cleanup.
2021-03-23 18:37:39 -07:00
bunnei
9032d21365
hle: kernel: k_memory_layout: Use pair instead of tuple.
2021-03-23 18:35:01 -07:00
bunnei
a32190d0c2
hle: kernel: k_system_control: Remove unnecessary inline.
2021-03-23 18:33:29 -07:00
bunnei
ab5995c7ae
common: common_sizes: Move sizes to the Common namespace.
2021-03-23 18:31:46 -07:00
Chloe Marcec
875183e7c5
nvdrv: Change InitializeEx to AllocAsEx
...
Wee also report the correct "big page size" now in GetVARegions & fix up the struct for IoctlAllocAsEx
2021-03-22 19:59:30 +11:00
bunnei
1d78190843
hle: kernel: Merge KMemoryRegionAttr and KMemoryRegionType.
...
- Fixes clang errors with mixed enum arithmetic.
2021-03-21 15:53:21 -07:00
bunnei
3ffbe50e7d
hle: kernel: Remove unused variable.
2021-03-21 15:47:24 -07:00
bunnei
fc5205fc84
hle: kernel: k_memory_region_type: Remove extra ".
2021-03-21 15:47:05 -07:00
bunnei
1996cae9cb
hle: kernel: k_memory_layout: Move KMemoryRegionAllocator out of global.
2021-03-21 14:45:13 -07:00
bunnei
343eaecd38
hle: kernel: k_memory_layout: Derive memory regions based on board layout.
2021-03-21 14:45:13 -07:00
bunnei
8d0ba7ee49
common: common_sizes: Move Invalid to Size_* prefix and add missing values.
2021-03-21 14:45:03 -07:00
bunnei
80688362cf
hle: kernel: k_memory_region: Refactor to simplify code.
2021-03-21 14:45:03 -07:00
bunnei
edbc505e52
hle: kernel: board: k_system_control: Extend to include memory region sizes.
2021-03-21 14:45:03 -07:00
bunnei
10265ad0e4
hle: kernel: board: Add secure_monitor module.
2021-03-21 14:45:03 -07:00
bunnei
28be8aec9a
common: Move common sizes to their own header for code reuse.
2021-03-21 14:45:03 -07:00
bunnei
01f04fee32
hle: kernel: k_address_space_info: Cleanup.
2021-03-21 14:45:02 -07:00
bunnei
f2e1441567
hle: kernel: Add k_trace module.
2021-03-21 14:45:02 -07:00
bunnei
5762517728
hle: kernel: KSystemControl: Update to reflect board-specific behavior.
2021-03-21 14:45:02 -07:00
bunnei
a439867f2c
hle: kernel: KMemoryManager: Add CalculateManagementOverheadSize.
2021-03-21 14:45:02 -07:00
bunnei
43a29b5803
hle: kernel: KMemoryManager: Add aliases.
2021-03-21 14:45:02 -07:00
bunnei
c17beefe3d
hle: kernel: Add architecture and board specific memory regions.
2021-03-21 14:45:02 -07:00
bunnei
3fb64da452
hle: kernel: KMemoryRegion: Derive region values.
2021-03-21 14:45:02 -07:00
bunnei
5872561077
hle: kernel: Migrate some code from Common::SpinLock to KSpinLock.
2021-03-21 14:45:02 -07:00
bunnei
541b4353e4
hle: kernel: Add initial KMemoryRegionType module.
2021-03-21 14:45:02 -07:00
bunnei
778e0f8ec1
hle: kernel: Move KMemoryRegion to its own module and update.
2021-03-21 14:45:02 -07:00
bunnei
2e85ee250d
Merge pull request #6052 from Morph1984/vi-getindirectlayerimagemap
...
IApplicationDisplayService: Stub GetIndirectLayerImageMap
2021-03-19 22:59:25 -07:00
bunnei
cb48ed2e1a
Merge pull request #6056 from zkitX/spl-updates
...
service: Refactor spl
2021-03-18 15:49:41 -07:00
Morph
ec514a4d1b
IApplicationDisplayService: Stub GetIndirectLayerImageMap
...
Used by games invoking the inline software keyboard such as GNOSIA
2021-03-17 03:25:12 -04:00
Morph
8441094ba3
bsd: Avoid writing empty buffers
...
Silences log spam on empty buffer writes
2021-03-16 12:50:44 -04:00
bunnei
d3a4a192fe
Merge pull request #6054 from Morph1984/time-GetClockSnapshot
...
time: Assign the current time point to the ClockSnapshot
2021-03-13 23:15:54 -08:00
zkitx
4439801c0f
Fix casing on DeallocateAesKeySlot
2021-03-11 02:46:22 -05:00
zkitx
ad653550eb
Update SPL to fit N's service refactor (4.0.0+) which split into new services.
2021-03-11 02:36:48 -05:00
Morph
87cfe5b1da
time: Fix CalculateSpanBetween implementation
...
CalculateSpanBetween passes in the ClockSnapshots through 2 input buffers and not as raw arguments. Fix this by reading the 2 input buffers instead of popping raw arguments.
Partially fixes Super Smash Bros. Ultimate's Spirit Board
2021-03-10 11:42:59 -05:00
Morph
2490ffbbce
time: Assign the current time point to the ClockSnapshot
...
Fixes the timer in Super Smash Bros Ultimate's Spirit Board.
2021-03-10 11:40:51 -05:00
bunnei
8f7eb194af
common: Fiber: use a reference for YieldTo.
...
- Fixes another small leak.
2021-03-07 13:46:53 -08:00
bunnei
47af34003b
hle: kernel: KThread: Rework dummy threads & fix memory leak.
...
- Dummy threads are created on thread local storage for all host threads.
- Fixes a leak by removing creation of fibers, which are not applicable here.
2021-03-05 17:10:57 -08:00
bunnei
a5ab85ac37
Revert "core: Switch to unique_ptr for usage of Common::Fiber."
2021-03-05 17:08:17 -08:00
bunnei
34a3ee1631
Merge pull request #6006 from bunnei/fiber-unique-ptr
...
core: Switch to unique_ptr for usage of Common::Fiber.
2021-03-04 23:59:06 -08:00
bunnei
9e9341f4b4
Merge pull request #6007 from bunnei/ldn-error
...
core: hle: ldn: Error out on call to Initialization.
2021-02-28 13:34:20 -08:00
Morph
ee9ebeeb80
Merge pull request #5276 from german77/gestures
...
HID: Implement gestures
2021-02-27 22:18:41 -05:00
german
e895ab7d6f
Implements touch, pan, pinch and rotation gestures
2021-02-27 19:54:42 -06:00
bunnei
ab65cb499d
core: hle: ldn: Error out on call to Initialization.
...
- Since we do not emulate LDN, returning an error here makes more sense.
2021-02-27 11:59:29 -08:00
bunnei
51fb0a6f96
core: Switch to unique_ptr for usage of Common::Fiber.
...
- With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context.
- Fixes a memory leak due to circular reference of the shared pointer.
2021-02-27 11:56:04 -08:00
bunnei
09f7c355c6
Merge pull request #5953 from bunnei/memory-refactor-1
...
Kernel Rework: Memory updates and refactoring (Part 1)
2021-02-27 12:48:35 -07:00
bunnei
bfa1644464
Merge pull request #5944 from Morph1984/gc-vibrations
...
hid: Implement GameCube Controller Vibrations
2021-02-26 19:10:36 -07:00
Morph
ec19a85890
hid: Implement GameCube Controller Vibrations
...
Implements both SendVibrationGcErmCommand and GetActualVibrationGcErmCommand, and modifies GetVibrationDeviceInfo to account for additional controllers.
2021-02-21 10:32:59 -05:00
Morph
3de8e7a8f2
acc: Stub GetNintendoAccountUserResourceCacheForApplication
...
This command returns a Nintendo Account ID and writes 2 output buffers. The first output buffer is a NasUserBaseForApplication and the second output buffer is currently empty.
Used by:
- Pokken Tournament DX
- Super Smash Bros. Ultimate
- Super Nintendo Entertainment System - Nintendo Switch Online
- Mario Kart 8 Deluxe
2021-02-21 10:29:25 -05:00
ameerj
8e4c9c9852
kernel: Fix resource release exception on exit
...
After rewriting the resource limit, objects releasing reserved resources require a live kernel instance.
This commit fixes exceptions that occur due to the kernel being destroyed before some objects released their resources, allowing for a graceful exit.
2021-02-20 20:51:11 -05:00
bunnei
93e20867b0
hle: kernel: Migrate PageHeap/PageTable to KPageHeap/KPageTable.
2021-02-18 16:16:25 -08:00
bunnei
b1e27890e8
hle: kernel: Migrate MemoryManager to KMemoryManager.
2021-02-18 16:16:25 -08:00
bunnei
93109c870e
hle: kernel: Migrate PageLinkedList to KPageLinkedList.
2021-02-18 16:16:25 -08:00
bunnei
65e0178cc0
hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.
2021-02-18 16:16:25 -08:00
bunnei
9e520e8f12
hle: kernel: Migrate SlabHeap to KSlabHeap.
2021-02-18 16:16:25 -08:00
bunnei
1d162f28d1
hle: kernel: Migrate MemoryLayout to KMemoryLayout.
2021-02-18 16:16:25 -08:00
bunnei
7ed5dd0d62
hle: kernel: Migrate AddressSpaceInfo to KAddressSpaceInfo.
2021-02-18 16:16:25 -08:00
bunnei
701ef616b2
hle: kernel: memory_manager: Rename AllocateContinuous to AllocateContinuous.
2021-02-18 16:16:24 -08:00
bunnei
f7a008d77f
hle: kernel: KSystemControl does not belong in Memory namespace.
2021-02-18 16:16:24 -08:00
bunnei
6a19086001
hle: kernel: memory: PageHeap: Migrate to KPageBitmap class.
2021-02-18 16:16:24 -08:00
bunnei
a02566136c
hle: kernel: Add KPageBitmap class.
2021-02-18 16:16:24 -08:00
bunnei
e7c33d1ad6
hle: kernel: system_control: Add function GenerateRandomU64.
2021-02-18 16:16:24 -08:00
bunnei
6da91da08e
hle: kernel: Add KSpinLock implementation.
2021-02-18 16:16:24 -08:00
bunnei
0d62f30b00
hle: kernel: Rename SharedMemory to KSharedMemory.
2021-02-18 16:16:12 -08:00
bunnei
9cae3e6e90
Merge pull request #4973 from ameerj/nvdec-opt
...
nvdec: Reuse allocated buffers and general cleanup
2021-02-18 15:12:07 -08:00
bunnei
b53b50adec
Merge pull request #4940 from german77/nativeGC
...
HID: Implement GC controller in game
2021-02-15 10:32:19 -08:00
bunnei
d9a8060ce3
hle: service: ldn: IUserLocalCommunicationService: Improve the stub.
2021-02-13 21:45:09 -08:00
bunnei
51c13606d6
hle: service: ldn: IUserLocalCommunicationService: Indicate that LDN is disabled.
...
- Fixes crash on Pokemon Sword/Shield when pressing 'Y'.
2021-02-13 20:11:26 -08:00
bunnei
d25011c92f
hle: service: am: IStorageAccessor: Fix out of bounds error handling.
2021-02-13 20:11:26 -08:00
ameerj
3c37d66c28
Address PR feedback
...
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2021-02-13 13:07:56 -05:00
ameerj
ac265a72ce
nvdec cleanup
2021-02-13 13:07:31 -05:00
ameerj
ec9b6641b1
kernel: More accurately reserve and release resources
2021-02-12 19:05:24 -05:00
ameerj
5fa6b15215
kernel: KScopedReservation implementation
...
This implements KScopedReservation, allowing resource limit reservations to be more HW accurate, and release upon failure without requiring too many conditionals.
2021-02-12 18:57:34 -05:00
Chloe
37939482fb
kernel: Unify result codes ( #5890 )
...
* kernel: Unify result codes
Drop the usage of ERR_NAME convention in kernel for ResultName. Removed seperation between svc_results.h & errors.h as we mainly include both most of the time anyways.
* oops
* rename errors to svc_results
2021-02-12 15:43:01 -08:00
bunnei
a0379c2db5
Merge pull request #5902 from lioncash/core-warn
...
core: Silence various warnings on Clang 12
2021-02-11 18:57:23 -08:00
Morph
886043a6d2
software_keyboard: Implement Finalize request command
2021-02-10 21:42:49 -05:00
Lioncash
0cd40fb523
bsd: Remove usage of optional emplace() with no arguments
...
Clang 12 currently falls over in the face of this.
2021-02-09 17:50:29 -05:00
Lioncash
1dab8acf5f
am/controller: Remove [[fallthrough]] from unreachable path
...
Prevents warnings on clang 12. This path is reachable on other
variations of the build that disable the unreachable macro.
2021-02-09 17:44:14 -05:00
Lioncash
d64ba58759
nfp: Correct uninitialized size being used within GetTagInfo()
...
We were previously the name of the object being initialized within its
own initializer, which results in uninitialized data being read.
2021-02-09 17:42:02 -05:00
bunnei
1b730827dd
Merge pull request #5892 from german77/backup
...
olsc: Stub GetSaveDataBackupSetting
2021-02-08 17:48:52 -08:00
bunnei
7666c0994c
Merge pull request #5868 from german77/HandheldFix
...
Prevent over scheduling audio events and add motion update unschedule event
2021-02-08 11:33:53 -08:00
german
a994a40467
hid: Implement GC controller
2021-02-07 22:59:46 -06:00
german
3f9eb56972
olsc: Stub GetSaveDataBackupSetting
2021-02-07 22:32:13 -06:00
Chloe
d0a760a34a
Merge pull request #5872 from lioncash/svc-error
...
svc: Provide more detailed error logs for svc functions
2021-02-08 12:27:36 +11:00
bunnei
230e71b255
Merge pull request #5887 from ogniK5377/lm-fix
...
lm: Fix ReadLeb128
2021-02-07 10:25:56 -08:00
Morph
458be11f93
Merge pull request #5878 from aleasto/master
...
pl_u: Fix read out of bounds
2021-02-07 22:20:47 +08:00
Chloe Marcec
9d5a56a40b
lm: Fix ReadLeb128
...
Fixes assertion on Bloodstained Ritual of the Night.
We would over read sometimes, this is fixed by checking if the top bit is set in the first iteration. We also lock the loop off to be only the max size of the type we can fit. Finally we changed an incorrect print of "DEBUG" to "TRACE" to reflect the proper log severity
2021-02-07 23:52:56 +11:00
bunnei
9078f4a9c7
Merge pull request #5871 from lioncash/address-arb
...
k_address_arbiter: Minor cleanup
2021-02-06 13:05:19 -08:00
Alessandro Astone
32d9a83f8e
pl_u: Fix read out of bounds
2021-02-06 18:44:01 +01:00
bunnei
61bf850f3d
Merge pull request #5326 from german77/hidUpdate1
...
HID: Update the HID service to match more closely to switchbrew part 1
2021-02-06 02:40:11 -08:00
Lioncash
40ab2b9348
k_address_arbiter: Unfold R_UNLESS macros
...
Allows for more descriptive error messages and also doesn't hide
control-path exit returns from the reader.
2021-02-06 04:08:27 -05:00
Lioncash
b8fc74d74d
k_address_arbiter: Remove unnecessary usages of std::addressof
...
This is a useful function in a generic context or with types that
overload unary operator&. However, primitives and pointers will never do
this, so we can opt for a more straightforward syntax.
2021-02-06 04:06:33 -05:00
Lioncash
7b9c58880f
k_address_arbiter: Remove dead code
...
This code is never used, so we can remove it. It's in version control,
so it can always be brought back when needed.
2021-02-06 04:06:33 -05:00
Lioncash
75a60a6e22
svc: Provide more detailed error logs for svc functions
...
Allows SVC calls to have much more informative information during error
cases. This also doesn't hide control flow returns from the reader.
2021-02-06 02:03:40 -05:00
bunnei
1498a7c9a8
Merge pull request #5862 from bunnei/kevent
...
Kernel Rework: Refactor KEvent/KReadableEvent/KWritableEvent
2021-02-05 23:00:43 -08:00
bunnei
3a804752cb
Merge pull request #5875 from lioncash/identifier
...
k_priority_queue: Minor cleanup
2021-02-05 17:02:13 -08:00
bunnei
ea4f62615e
hle: kernel: Drop R_UNLESS_NOLOG in favor of expanded if-statement.
2021-02-05 14:03:36 -08:00
bunnei
546af64340
hle: kernel: KAddressArbiter: Remove noisy error log.
2021-02-05 14:03:36 -08:00
bunnei
eba3c59a61
hle: kernel: svc: Cleanup KEvent/KReadableEvent/KWritableEvent SVCs.
2021-02-05 14:03:36 -08:00
bunnei
ff3c7c068b
hle: kernel: Reimplement KReadableEvent and KWritableEvent.
2021-02-05 14:03:32 -08:00
bunnei
6bf80dfee0
hle: kernel: Implement KEvent.
2021-02-05 14:00:36 -08:00
bunnei
e9446d232f
hle: kernel: KAddressArbiter: Use R_UNLESS_NOLOG where applicable.
2021-02-05 14:00:36 -08:00
bunnei
3f942c01f0
hle: kernel: Rename WritableEvent to KWritableEvent.
2021-02-05 14:00:36 -08:00
bunnei
e86a7e3691
hle: kernel: Rename ReadableEvent to KReadableEvent.
2021-02-05 14:00:36 -08:00
bunnei
b0727c90c5
Merge pull request #5867 from Morph1984/am-GetHealthWarningDisappearedSystemEvent
...
IApplicationFunctions: Implement GetHealthWarningDisappearedSystemEvent
2021-02-05 13:49:49 -08:00
Lioncash
756365386a
k_affinity_mask: Avoid implicit truncation to bool
...
This can cause compiler warnings. Instead, we can explicitly add a
boolean expression around it to naturally turn the result into a bool.
2021-02-04 15:35:46 -05:00
Lioncash
b944edc85d
k_priority_queue: Unfold several declval usages
...
Given these are only used as function existence checks, we can simplify
some usages of declval, given they aren't particularly useful here.
Reduces a few template instantiations, which at most reduces compile
times a tiny bit.
2021-02-04 15:18:58 -05:00
Lioncash
31e6e58101
k_priority_queue: Simplify affinity mask type alias
...
We can make use of the _t variants of the templates to cut down on a
little bit of verbosity.
2021-02-04 14:57:41 -05:00
Lioncash
53aec1fe2d
k_priority_queue: Resolved reserved identifier
...
An identifier containing a starting underscore followed by a capital
letter is reserved by the standard. It's trivial to avoid this by moving
the underscore to the end of the identifier.
While the likelihood of clashing here being minimal, we can turn a
"should not break" scenario into a definitive "will not break" one, so
why not?.
2021-02-04 14:55:08 -05:00
german
8019b2b9b5
Add footer types and address comments
2021-02-03 20:17:08 -06:00
german
9a9e81f2e9
Fix npad struct to match switchbrew
2021-02-03 20:17:08 -06:00
german
f30ef98761
Adds missing controller types and properties
2021-02-03 20:17:08 -06:00
bunnei
b0c9752663
Merge pull request #5848 from ogniK5377/k-resourcelimit
...
kernel: Rewrite resource limit to be more accurate
2021-02-03 14:53:25 -08:00
Chloe Marcec
2c6e940493
Simplify limitableresource names
2021-02-03 12:55:16 +11:00
bunnei
48d040fded
Merge pull request #5842 from german77/userfix
...
acc: Fix error when second user is selected
2021-02-02 15:43:51 -08:00
german
7784b1da6d
Prevent over scheduling audio events and terminate properly the motion update event
2021-02-02 10:17:10 -06:00
Morph
13b08376b7
IApplicationFunctions: Implement GetHealthWarningDisappearedSystemEvent
2021-02-02 10:47:38 -05:00
bunnei
d4ebc9a120
Merge pull request #5861 from german77/HandheldFix
...
hid: Only update motion for npad and prevent over scheduling events
2021-02-01 18:46:26 -08:00
Chloe Marcec
64c3582705
Compile error
2021-02-02 13:23:34 +11:00
Chloe Marcec
9e4b2d60bc
Address issues
2021-02-02 13:23:00 +11:00
bunnei
f317b0d354
Merge pull request #5859 from Morph1984/nifm
...
nifm: Stub GetCurrentNetworkProfile and GetCurrentIpConfigInfo
2021-01-31 21:31:14 -08:00
Ameer J
f614d7d887
Merge pull request #5856 from Morph1984/nifm-fix-getappletinfo-stub
...
nifm: Fix GetAppletInfo stub
2021-01-31 23:33:11 -05:00
bunnei
67d08f14af
Merge pull request #5858 from Morph1984/IsGamePlayRecordingSupported-stub
...
am/IApplicationFunctions: Stub IsGamePlayRecordingSupported
2021-01-31 18:04:04 -08:00
german
2489547dc5
Only update motion for npad and prevent over scheduling events
2021-01-31 18:52:38 -06:00
Morph
8c7d89e6c7
nifm: Stub GetCurrentIpConfigInfo
...
- Used by Lets Sing 12
2021-01-31 07:36:37 -05:00
Morph
7d9465d47a
prepo: Stub GetTransmissionStatus
2021-01-31 07:07:11 -05:00
Morph
2394807b42
prepo: Stub RequestImmediateTransmission
...
- Used by Animal Crossing: New Horizons
2021-01-31 07:04:35 -05:00
Morph
4bf1cf1f81
nifm: Stub GetCurrentNetworkProfile
...
- Used by Minecraft Bedrock Edition
- Used by Bloons TD 5
2021-01-31 06:56:29 -05:00
Morph
70a2065828
nifm: Add several structs
2021-01-31 06:56:29 -05:00
Morph
9f6b35e61f
am/IApplicationFunctions: Stub IsGamePlayRecordingSupported
...
Used by RetroArch
2021-01-31 03:11:03 -05:00
Morph
ded094a340
bsd: Fix EventFd stub
2021-01-31 02:57:56 -05:00
bunnei
1cc009a996
Merge pull request #5855 from Morph1984/bsd-fix-getsockopt-stub
...
bsd: Fix GetSockOpt stub
2021-01-30 23:21:21 -08:00
Morph
9914db8daa
nifm: Fix GetAppletInfo stub
2021-01-31 02:19:36 -05:00
Morph
94f660d1cb
Merge pull request #5851 from ameerj/pop-inv-stub
...
am: Stub TryPopFromFriendInvitationStorageChannel
2021-01-31 14:18:40 +08:00
Morph
6cc769065d
bsd: Fix GetSockOpt stub
2021-01-31 01:08:56 -05:00
ameerj
ad146eca60
bsd: Stub EventFd
...
Used by Family Feud
2021-01-30 21:47:32 -05:00
ameerj
99dcf7da21
am: Stub TryPopFromFriendInvitationStorageChannel
...
Used by Family Feud
2021-01-30 21:43:55 -05:00
Chloe Marcec
ee333e063d
fix compile error
2021-01-30 21:51:22 +11:00
Chloe Marcec
56742c6222
cleanup commenting
2021-01-30 21:20:35 +11:00
Chloe Marcec
7791cfd960
Drop m_ from lock
2021-01-30 21:19:49 +11:00
Chloe Marcec
3bf62c7a8a
Move to GetGlobalTimeNs, fix GetTotalPhysicalMemoryAvailable
2021-01-30 21:03:10 +11:00
Chloe Marcec
3be1a565f8
kernel: Rewrite resource limit to be more accurate
...
Matches closer to hardware
2021-01-30 20:40:49 +11:00
bunnei
a4526c4e1a
Merge pull request #5779 from bunnei/kthread-rewrite
...
Rewrite KThread to be more accurate
2021-01-29 23:06:40 -08:00
Morph
f67cfebada
Merge pull request #5838 from german77/prepostub
...
prepo: Stub GetSystemSessionId
2021-01-30 14:19:59 +08:00
german
9150b8972e
Stub GetSystemSessionId
2021-01-29 18:41:28 -06:00
bunnei
b786568c5a
Merge pull request #5809 from ogniK5377/FlushAudioOutBuffers
...
audout: FlushAudioOutBuffers
2021-01-28 21:54:46 -08:00
bunnei
543e212554
hle: kernel: KLightLock: Fix several bugs.
2021-01-28 21:53:21 -08:00
bunnei
e24c6dab93
hle: kernel: KThread: Release thread resource on thread exit.
2021-01-28 21:49:47 -08:00
bunnei
10738839ad
yuzu: debugger: Ignore HLE threads.
2021-01-28 21:42:27 -08:00
bunnei
3856564727
hle: kernel: process: Add state lock.
2021-01-28 21:42:26 -08:00
bunnei
ff46ef7ea3
hle: kernel: threading: Fix bug with host thread naming.
2021-01-28 21:42:26 -08:00
bunnei
6ee8340a6b
hle: kernel: k_scheduler_lock: Cleanup.
2021-01-28 21:42:26 -08:00
bunnei
6e953f7f02
hle: kernel: Allocate a dummy KThread for each host thread, and use it for scheduling.
2021-01-28 21:42:26 -08:00
bunnei
37f74d8741
hle: kernel: k_scheduler: Use atomics for current_thread, etc.
2021-01-28 21:42:26 -08:00
bunnei
f6b10fad63
hle: kernel: k_scheduler: Fix for single core mode.
2021-01-28 21:42:26 -08:00
bunnei
0a1449e04b
kernel: Fix build errors.
2021-01-28 21:42:26 -08:00
bunnei
ca78f77827
hle: kernel: KScheduler: Introduce thread context_guard.
2021-01-28 21:42:26 -08:00
bunnei
cdd14b03e5
hle: kernel: Recode implementation of KThread to be more accurate.
2021-01-28 21:42:26 -08:00
bunnei
1470338458
kernel: svc_types: Add ThreadActivity.
2021-01-28 21:42:26 -08:00
bunnei
1772ebeb1e
kernel: KSchedulerPriorityQueue: Lowest priority should be LowestThreadPriority.
2021-01-28 21:42:26 -08:00
bunnei
1f99f5473c
kernel: k_light_lock: Simplify EmuThreadHandle implementation.
2021-01-28 21:42:26 -08:00
bunnei
c0f5830323
hle: kernel: TimeManager: Simplify to not rely on previous EmuThreadHandle implementation.
2021-01-28 21:42:26 -08:00
bunnei
ff186b2498
core: hle: kernel: object: Implement Finalize() virtual method.
2021-01-28 21:42:26 -08:00
bunnei
33b4930280
core: hle: kernel: svc_results: Populate with several missing error codes.
2021-01-28 21:42:26 -08:00
bunnei
5a4fc4a529
core: hle: kernel: Implement KLightLock.
2021-01-28 21:42:26 -08:00
bunnei
97129bc742
core: hle: kernel: Implement KThreadQueue.
2021-01-28 21:42:25 -08:00
bunnei
4dbf3f4880
hle: kernel: KThread: Clean up thread priorities.
2021-01-28 21:42:25 -08:00
bunnei
1e55498110
hle: kernel: KThread: Reorganize thread priority defaults.
2021-01-28 21:42:25 -08:00
bunnei
0530292b97
hle: kernel: KThread: Fix ThreadType definition.
2021-01-28 21:42:25 -08:00
bunnei
4782985013
hle: kernel: Move single core "phantom mode" out of KThread.
...
- This is a workaround that does not belong in a kernel primitive.
2021-01-28 21:42:25 -08:00
bunnei
eea346ba8e
hle: kernel: KThread: Remove thread types that do not exist.
2021-01-28 21:42:25 -08:00
bunnei
c0d3aef28c
core: hle: kernel: Rename Thread to KThread.
2021-01-28 21:42:25 -08:00
german
8ba0cac71c
Fix user changing to 0 if valid
2021-01-28 21:02:25 -06:00
bunnei
df41e78205
Merge pull request #5837 from german77/socketstub
...
sockets: Stub GetSockOpt
2021-01-28 16:28:11 -08:00
LC
9f6290d207
Merge pull request #5840 from Morph1984/prepo-fix
...
prepo: Fix BufferDescriptorX invalid buffer index errors and add New variants of SaveReport
2021-01-28 10:52:44 -05:00
Morph
4921ba05db
hid: Add static_assert for Parameter size
2021-01-28 09:41:43 -05:00
Morph
ae6b3bdfbf
prepo: Fix BufferDescriptorX invalid buffer errors and add "New" variants of SaveReport
...
The second input buffer could be optional when prepo/srepo is called, test for the availability of the second buffer prior to reading from it.
2021-01-28 01:32:24 -05:00
Morph
008afa5d59
hle_ipc: Add Can(Read, Write)Buffer
...
Allows us to test whether a buffer can be read from or written to memory
2021-01-28 01:32:24 -05:00
german
659b5f8088
Stub GetSockOpt
2021-01-27 23:18:20 -06:00
Morph
d4d39aa4c7
npad: Remove unused device handle parameter
2021-01-27 13:05:31 -05:00
bunnei
fb0fe3b8c3
Merge pull request #5812 from german77/StubSixaxisFusion
...
HID: Stub Set/Get/Reset SixaxisSensorFusionParameters
2021-01-26 15:58:04 -08:00
bunnei
09b6f03592
Merge pull request #5810 from ogniK5377/stereo-vision
...
hle: Implement remaining services for Stereo Vision
2021-01-26 15:01:01 -08:00
bunnei
72c1cb85f1
Merge pull request #5824 from ogniK5377/IPsmSession
...
psm: IPsmSession
2021-01-26 11:11:29 -08:00
bunnei
64a5548454
Merge pull request #5774 from ogniK5377/mii-raw-random
...
mii: Fix BuildRandomStoreData & Cleanup raw_data
2021-01-25 16:41:20 -08:00
bunnei
81a037df9d
Merge pull request #5771 from ogniK5377/lm-rework
...
lm: Recode LM service
2021-01-25 10:18:09 -08:00
Chloe Marcec
2c57f0fbd5
Omit system reference
2021-01-25 23:13:37 +11:00
Chloe Marcec
04e9486651
psm: IPsmSession
...
Used by homebrew menu
2021-01-25 21:37:51 +11:00
bunnei
2a2ee62cfd
Merge pull request #5799 from ogniK5377/event-register-unregister
...
nvdrv: Unregister already registered events
2021-01-24 23:19:10 -08:00
german
a8245cf2f1
Stub Set/Get/Reset SixaxisSensorFusionParameters
2021-01-24 11:28:52 -06:00
Chloe Marcec
2afc1060ef
Print Process ID and Thread ID as hex
2021-01-25 02:47:40 +11:00
Chloe Marcec
5882cc0502
hle: Implement remaining services for Stereo Vision
...
Used by Zelda Breath of the Wild, Super Mario Odyssey and Nintendo Labo
2021-01-25 00:34:01 +11:00
Chloe Marcec
b2b95e96c1
audout: FlushAudioOutBuffers
...
Fixes Devil May Cry
2021-01-24 19:13:34 +11:00
bunnei
f7ac4e1eb4
Merge pull request #5806 from bunnei/am-stub
...
hle: service: am: Stub ILibraryAppletAccessor::PresetLibraryAppletGpuTimeSliceZero.
2021-01-23 23:37:05 -08:00
Chloe Marcec
822edff5bd
Simplify condition
2021-01-23 22:12:05 +11:00
Chloe Marcec
3b0458a7a5
nvdrv: Unregister already registered events
2021-01-23 22:02:14 +11:00
Chloe Marcec
df42100320
Clamp string reads to buffer size
2021-01-23 18:24:57 +11:00
bunnei
12355cbf02
Merge pull request #5776 from ogniK5377/lbl
...
lbl: Implement most of lbl
2021-01-22 23:13:23 -08:00
bunnei
981d8e82d2
Merge pull request #5765 from ogniK5377/StoreSaveDataThumbnail-stub
...
acc: Stub StoreSaveDataThumbnail
2021-01-22 21:51:54 -08:00
bunnei
a1335d3d51
Merge pull request #5270 from german77/multiTouch
...
HID: Add multitouch support
2021-01-20 22:39:01 -08:00
bunnei
f83ef80ebd
hle: service: am: Stub ILibraryAppletAccessor::PresetLibraryAppletGpuTimeSliceZero.
...
- Used by Monster Hunter Rise demo.
2021-01-20 20:35:12 -08:00
Chloe Marcec
c795207fb2
lbl: Implement most of lbl
...
Pretty basic service, only thing left to do is handle setting applying once set:sys is implemented
2021-01-21 00:46:03 +11:00
Chloe Marcec
5b8bc56e65
mii: Fix BuildRandomStoreData & Cleanup raw_data
...
Cleaned up mii raw data to reflect the underlying values instead of just a chunk of bytes.
Fixed BuildRandomStoreData not actually generating random miis properly. "values" should be a u32, not a u8.
2021-01-20 21:53:57 +11:00
Chloe Marcec
dc18a1261c
Mark DestinationToString as static
2021-01-20 18:42:39 +11:00
Chloe Marcec
dca2e2c8f1
Mark LogPacketHeaderEntry hash as noexcept
2021-01-20 18:35:58 +11:00
Chloe Marcec
83f8c1a25e
lm: Recode LM service
...
Rework the service to spit out to logs instead of a seperate file as well as fix any crashes caused by lm.
2021-01-20 18:25:15 +11:00
Chloe Marcec
2d33b2c55a
acc: Stub StoreSaveDataThumbnail
...
Fixes ACA NEOGEO METAL SLUG hanging on boot.
2021-01-19 20:56:18 +11:00
Morph
4a67a5b917
npad: Add check for HANDHELD_INDEX in UpdateControllerAt()
2021-01-17 22:36:17 -05:00
bunnei
e8401964b4
Merge pull request #5360 from ReinUsesLisp/enforce-memclass-access
...
core: Silence Wclass-memaccess warnings and enforce it
2021-01-17 00:55:10 -08:00
LC
8be9e5b48b
Merge pull request #5358 from ReinUsesLisp/rename-insert-padding
...
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
2021-01-15 16:19:46 -05:00
ReinUsesLisp
f8650a9580
core: Silence Wclass-memaccess warnings
...
This requires making several types trivial and properly initialize
them whenever they are called.
2021-01-15 16:31:19 -03:00
ReinUsesLisp
3ff978aa4f
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
...
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
2021-01-15 16:27:28 -03:00
german
b483f2d010
Always initialize keyboard input
2021-01-15 09:05:17 -06:00
german
8495e1bd83
Add mutitouch support for touch screens
2021-01-15 09:05:17 -06:00
german
d8df9a16bd
Allow to return up to 16 touch inputs per engine
2021-01-15 09:05:17 -06:00
german
390ee10eef
Allow all touch inputs at the same time and remove config options that are not longer necesary
2021-01-15 09:05:17 -06:00
german
d583e01f54
Add multitouch support
2021-01-15 09:03:39 -06:00
Lioncash
8620de6b20
common/bit_util: Replace CLZ/CTZ operations with standardized ones
...
Makes for less code that we need to maintain.
2021-01-15 02:15:32 -05:00
bunnei
03dfc8d8e7
hle: kernel: thread: Preserve thread wait reason for debugging only.
...
- This is decoupled from core functionality and used for debugging only.
2021-01-11 14:23:17 -08:00
bunnei
6b2f653143
hle: kernel: k_scheduler_lock: Fix shadowing errors.
2021-01-11 14:23:16 -08:00
bunnei
82f6037ec2
core: hle: Add missing calls to MicroProfileOnThreadExit.
2021-01-11 14:23:16 -08:00
bunnei
912dd50146
core: hle: Integrate new KConditionVariable and KAddressArbiter implementations.
2021-01-11 14:23:16 -08:00
bunnei
952d1ac487
core: hle: kernel: Update KAddressArbiter.
2021-01-11 14:23:16 -08:00
bunnei
b4e6d6c385
core: hle: kernel: Update KConditionVariable.
2021-01-11 14:23:16 -08:00
bunnei
1212fa60b6
core: hle: kernel: Begin moving common SVC defintions to its own header.
2021-01-11 14:23:16 -08:00
bunnei
8a155c4058
hle: kernel: Remove unnecessary AddressArbiter definition.
2021-01-11 14:23:16 -08:00
bunnei
f12701b303
hle: kernel: k_scheduler: Cleanup OnThreadPriorityChanged.
2021-01-11 14:23:16 -08:00
bunnei
d1309fb275
hle: kernel: Rename thread "status" to "state".
2021-01-11 14:23:16 -08:00
bunnei
c3c43e32fc
hle: kernel: thread: Replace ThreadStatus/ThreadSchedStatus with a single ThreadState.
...
- This is how the real kernel works, and is more accurate and simpler.
2021-01-11 14:23:16 -08:00
bunnei
7420a717e6
core: hle: kernel: Add some useful functions for checking kernel addresses.
2021-01-11 14:23:16 -08:00
bunnei
4bbf173fc1
core: hle: kernel: svc_types: Add type definitions for KAddressArbiter.
2021-01-11 14:23:16 -08:00
bunnei
35c3c078e3
core: hle: kernel: Update KSynchronizationObject.
2021-01-11 14:23:16 -08:00
bunnei
1ae883435d
core: hle: kernel: Begin moving common SVC results to its own header.
2021-01-11 14:23:16 -08:00
bunnei
8fc6e92ef1
hle: service: nfp: Remove incorrect signaling behavior in GetDeviceState.
2021-01-11 14:23:16 -08:00
bunnei
32df83e55d
Merge pull request #5312 from german77/overclockenabled
...
apm: Stub IsCpuOverclockEnabled
2021-01-10 14:30:13 -08:00
ReinUsesLisp
b4451c5e81
core: Silence unhandled enum in switch warnings
2021-01-08 23:21:07 -03:00
german
385a4555d5
Stub IsCpuOverclockEnabled
2021-01-08 09:44:56 -06:00
ameerj
06cef3355e
fix for nvdec disabled, cleanup host1x
2021-01-07 14:33:45 -05:00
ameerj
2c27127d04
nvdec syncpt incorporation
...
laying the groundwork for async gpu, although this does not fully implement async nvdec operations
2021-01-07 14:33:45 -05:00
ReinUsesLisp
4f13e270c8
core: Silence warnings when compiling without asserts
2021-01-05 04:18:16 -03:00
ameerj
6b354ccaee
buffer_queue: Protect queue_sequence list access with a mutex
...
fixes a data race as this is an unprotected variable manipulated by multiple threads
2021-01-04 01:36:41 -05:00
bunnei
beaa25d777
hle: service: nvflinger: buffer_queue: Do not reset id/layer_id on Connect.
...
- This behavior is a mistake, fixes Katana Zero.
2021-01-02 15:42:16 -08:00
Morph
a745d87971
general: Fix various spelling errors
2021-01-02 10:23:41 -05:00
bunnei
eb318ffffc
Merge pull request #5249 from ReinUsesLisp/lock-free-pages
...
core/memory: Read and write page table atomically
2021-01-01 02:54:01 -08:00
bunnei
25d607f5f6
Merge pull request #5208 from bunnei/service-threads
...
Service threads
2020-12-30 22:06:05 -08:00
ReinUsesLisp
157fc2d785
service/pcie: Fix invalid initialization argument
2020-12-30 02:58:38 -03:00
ReinUsesLisp
b3587102d1
core/memory: Read and write page table atomically
...
Squash attributes into the pointer's integer, making them an uintptr_t
pair containing 2 bits at the bottom and then the pointer. These bits
are currently unused thanks to alignment requirements.
Configure Dynarmic to mask out these bits on pointer reads.
While we are at it, remove some unused attributes carried over from
Citra.
Read/Write and other hot functions use a two step unpacking process that
is less readable to stop MSVC from emitting an extra AND instruction in
the hot path:
mov rdi,rcx
shr rdx,0Ch
mov r8,qword ptr [rax+8]
mov rax,qword ptr [r8+rdx*8]
mov rdx,rax
-and al,3
and rdx,0FFFFFFFFFFFFFFFCh
je Core::Memory::Memory::Impl::Read<unsigned char>
mov rax,qword ptr [vaddr]
movzx eax,byte ptr [rdx+rax]
2020-12-29 21:54:49 -03:00
bunnei
85cfd96f62
Merge pull request #5247 from comex/xx-concepts
...
k_priority_queue: Fix concepts use
2020-12-29 16:50:20 -08:00
bunnei
82e0eeed21
hle: kernel: service_thread: Make thread naming more consistent.
2020-12-29 16:46:29 -08:00
bunnei
a2a0f5318d
hle: kernel: Manage service threads on another thread.
...
- This is to allow service threads to defer destruction of themselves.
2020-12-29 16:46:29 -08:00
bunnei
b02464f685
Merge pull request #5246 from comex/xx-include
...
Add missing include of "core/hle/kernel/kernel.h"
2020-12-29 16:43:17 -08:00
bunnei
c192da3f82
hle: kernel: Manage host thread IDs using TLS.
...
- Avoids the need to have a large map of host to guest thread IDs.
2020-12-29 15:55:30 -08:00
comex
388cf58b31
k_priority_queue: Fix concepts use
...
- For `std::same_as`, add missing include of `<concepts>`.
- For `std::convertible_to`, create a replacement in `common/concepts.h`
and use that instead.
This would also be found in `<concepts>`, but unlike `std::same_as`,
`std::convertible_to` is not yet implemented in libc++, LLVM's STL
implementation - not even in master. (In fact, `std::same_as` is the
*only* concept currently implemented. For some reason.)
2020-12-29 14:33:41 -05:00
comex
b36896b90e
Add missing include of "core/hle/kernel/kernel.h"
...
This is needed as the header invokes methods on KernelCore.
2020-12-29 14:22:35 -05:00
ameerj
0383363a8f
svc: demote SleepThread log to LOG_TRACE
...
This log is called often, and introduces a lot of noise when debug logging is enabled, making it difficult to see other debug logs.
2020-12-29 14:01:56 -05:00
bunnei
dfdac7d38a
hle: kernel: Move ServiceThread ownership to KernelCore.
...
- Fixes a circular dependency which prevented threads from being released on shutdown.
2020-12-29 01:12:39 -08:00
bunnei
f57be2e626
hle: kernel: service_thread: Add thread name and take weak_ptr of ServerSession.
2020-12-29 01:06:39 -08:00
bunnei
7d77a3f88f
hle: service: Acquire and release a lock on requests.
...
- This makes it such that we can safely access service members from CoreTiming thread.
2020-12-28 21:33:34 -08:00
bunnei
d0649d0971
core: hle: kernel: Clear process list on boot.
2020-12-28 21:33:34 -08:00
bunnei
994a9fec4e
hle: service: vi: Refactor to grab buffer only once.
2020-12-28 21:33:34 -08:00
bunnei
6433b1dfd6
service: nvflinger: Improve synchronization for BufferQueue.
...
- Use proper mechanisms for blocking on DequeueBuffer.
- Ensure service thread terminates on emulation Shutdown.
2020-12-28 21:33:34 -08:00
bunnei
bea51d948d
hle: service: Ensure system is powered on before writing IPC result.
2020-12-28 16:33:48 -08:00
bunnei
6d2f9428c5
core: kernel: Clear process list earlier.
2020-12-28 16:33:48 -08:00
bunnei
5d4715cc6a
hle: kernel: hle_ipc: Remove SleepClientThread.
...
- This was kind of hacky, and no longer is necessary with service threads.
2020-12-28 16:33:48 -08:00
bunnei
87d6588cb5
hle: service: bsd: Update to work with service threads, removing SleepClientThread.
2020-12-28 16:33:48 -08:00
bunnei
0c81b83ca9
hle: service: nvdrv: Revert #4981 to remove usage of SleepClientThread.
...
- Note, this always processes the ioctl right away, which fixes BotW 1.0.0 issues.
2020-12-28 16:33:48 -08:00
bunnei
8bc3d66354
hle: kernel: service_thread: Add parameter for thread pool size.
2020-12-28 16:33:47 -08:00
bunnei
19a8f03ad5
hle: service: nvflinger: Refactor locking and interfaces.
2020-12-28 16:33:47 -08:00
bunnei
b377da042b
hle: service: vi: Remove usage of SleepClientThread.
2020-12-28 16:33:47 -08:00
bunnei
28281ae250
core: hle: server_session: Use separate threads for each service connection.
2020-12-28 16:33:47 -08:00
bunnei
29ccc7673f
Merge pull request #5042 from Morph1984/project-aether
...
Project Aether: Reimplementation of the Web Browser Applet
2020-12-21 23:47:10 -08:00
bunnei
1279c7ce7a
Merge pull request #5131 from bunnei/scheduler-rewrite
...
Rewrite Kernel scheduler based on Atmosphere
2020-12-20 20:57:54 -08:00
Morph
82fa9f8d56
applets/web: Implement the online web browser applet
2020-12-18 10:33:28 -05:00
Morph
8b95bf041d
main, applets/web: Re-add progress dialog for RomFS extraction
2020-12-18 10:33:28 -05:00
Morph
d46ca5a015
pl_u, applets/web: Decrypt shared fonts to TTF files
2020-12-18 10:33:28 -05:00
Morph
46183294b2
ns_vm: Stub NeedsUpdateVulnerability
...
This is used to force system updates on launching the web browser. We do not care about system updates so this can be set to false.
2020-12-18 10:33:28 -05:00
Morph
54ea3c47c8
controllers/npad: Make press_state atomic
2020-12-18 10:33:28 -05:00
Morph
d6d1a8e02c
applets/web: Implement the default web browser applet frontend
2020-12-18 10:33:28 -05:00
Morph
89df483567
applets/web: Implement the offline browser applet backend
2020-12-18 10:33:27 -05:00
Morph
a5750f437d
applets/web: Initial implementation of the web browser applet
2020-12-18 10:33:27 -05:00
Morph
ccb439efb0
applets: Remove the previous web browser applet implementation
2020-12-18 10:33:27 -05:00
ameerj
873ad1272e
buffer_queue: better use of std::array
2020-12-18 00:12:14 -05:00
ameerj
8cb683f3b9
Overwrite slots instead of queuing them, add disconnect signal
...
Fix for Katana Zero and Yoshi's Crafted World
2020-12-17 14:22:46 -05:00
bunnei
f3db273753
Merge pull request #5190 from Morph1984/validate_device_handle
...
controllers/npad: Validate device handles before use
2020-12-15 16:40:11 -08:00
bunnei
2e1b998d5e
Merge pull request #5119 from Morph1984/fs-opendatastoragewithprogramindex
...
fsp_srv: Implement OpenDataStorageWithProgramIndex
2020-12-15 11:07:03 -08:00
bunnei
df6427d30b
Merge pull request #5168 from Morph1984/aoc-PurchaseEventManager
...
aoc_u: Stub IPurchaseEventManager and its service commands
2020-12-14 16:08:38 -08:00
Morph
1c773c0869
controllers/npad: Validate device handles before use
...
Some games such as NEKOPARA Vol. 3 send invalid device handles when calling InitializeVibrationDevice. Introduce a check to validate the device handle before use.
2020-12-12 07:05:38 -05:00
bunnei
37194dd4e9
Merge pull request #5172 from lioncash/svc-wide
...
svc: Remove unnecessary casts
2020-12-11 17:39:30 -08:00
bunnei
2d47a5fd41
Merge pull request #5123 from Morph1984/nim-IsLargeResourceAvailable
...
nim: Stub IsLargeResourceAvailable
2020-12-10 11:34:18 -08:00
Rodrigo Locatti
e94dd7e2c4
Merge pull request #5142 from comex/xx-poll-events
...
network, sockets: Replace `POLL_IN`, `POLL_OUT`, etc. constants with an `enum class PollEvents`
2020-12-09 03:52:20 -03:00
bunnei
6f41763061
Merge pull request #5166 from lioncash/log-cast
...
core: Remove unnecessary enum casts in log calls
2020-12-08 21:58:13 -08:00
bunnei
05a703e15d
Merge pull request #5135 from Morph1984/applets-shadow
...
applets: Resolve variable shadowing
2020-12-08 17:43:59 -08:00
Lioncash
2de124e223
svc: Remove unnecessary casts
...
Simplifies and removes some casts. In all cases, these were generally
widening from a 32-bit unsigned type to a 64-bit unsigned type, so no
information would be lost from the conversion.
2020-12-08 15:42:10 -05:00
Morph
deff708cbe
IPurchaseEventManager: Implement GetPurchasedEventReadableHandle
...
- Used by Pokémon Café Mix
- Used by DOOM: Eternal
2020-12-08 13:39:19 -05:00
Morph
a9cfe06aaf
IPurchaseEventManager: Stub Set(Default)DeliveryTarget
...
- Used by Pokémon Café Mix
- Used by DOOM: Eternal
2020-12-08 13:39:13 -05:00
Morph
009bdb3558
aoc_u: Stub Create(Permanent)EcPurchasedEventManager
...
- Used by Pokémon Café Mix
- Used by DOOM: Eternal
2020-12-08 13:39:07 -05:00
Morph
e15039372e
fsp_srv: Implement OpenDataStorageWithProgramIndex
...
- Used by RollerCoaster Tycoon 3: Complete Edition
2020-12-08 08:19:05 -05:00
Morph
0eb6c6cd83
file_sys: Consolidate common Title ID operations
2020-12-08 08:19:05 -05:00
Lioncash
6b7320add4
core: Remove unnecessary enum casts in log calls
...
Follows the video core PR. fmt doesn't require casts for enum classes
anymore, so we can remove quite a few casts.
2020-12-07 23:02:23 -05:00
Lioncash
215cfbb757
controller: Use std::move within ConvertToFrontendParameters()
...
Avoids unnecessary copies.
2020-12-07 22:04:16 -05:00
Lioncash
97dd67ad1c
controller: Avoid unnecessary copies in ConfigurationComplete()
...
Avoids unnecessary 1072 byte copies when querying info about
controllers.
2020-12-07 22:02:58 -05:00
bunnei
a58d57a60d
Merge pull request #5148 from comex/xx-unused-fields
...
core: Mark unused fields as [[maybe_unused]]
2020-12-06 22:33:00 -08:00
bunnei
24cabf5e2f
Merge pull request #5154 from comex/xx-ipc
...
hle: Type check ResponseBuilder::Push arguments, and fix use in vi.cpp
2020-12-06 22:32:04 -08:00
LC
8a00a0ade6
Merge pull request #5147 from comex/xx-purevirt
...
nvdrv: Remove useless re-declaration of pure virtual methods that were already declared in the superclass
2020-12-07 00:08:46 -05:00
LC
43f0b42088
Merge pull request #5150 from comex/xx-boxcat
...
boxcat: Avoid unnecessary object copy
2020-12-07 00:07:39 -05:00
LC
69af6ada2f
Merge pull request #5136 from lioncash/video-shadow3
...
video_core: Resolve more variable shadowing scenarios pt.3
2020-12-07 00:06:53 -05:00
comex
0791082b43
network, sockets: Replace POLL_IN
, POLL_OUT
, etc. constants with an enum class PollEvents
...
Actually, two enum classes, since for some reason there are two separate
yet identical `PollFD` types used in the codebase. I get that one is
ABI-compatible with the Switch while the other is an abstract type used
for the host, but why not use `WSAPOLLFD` directly for the latter?
Anyway, why make this change? Because on Apple platforms, `POLL_IN`,
`POLL_OUT`, etc. (with an underscore) are defined as macros in
<sys/signal.h>. (This is inherited from FreeBSD.) So defining
a variable with the same name causes a compile error.
I could just rename the variables, but while I was at it I thought I
might as well switch to an enum for stronger typing.
Also, change the type used for values copied directly to/from the
`events` and `revents` fields of the host *native*
`pollfd`/`WSASPOLLFD`, from `u32` to `short`, as `short` is the correct
canonical type on both Unix and Windows.
2020-12-06 19:14:42 -05:00
comex
e31cb50405
Fix "explicitly defaulted but implicitly deleted" warning
...
`PhysicalCore`'s move assignment operator was declared as `= default`,
but was implicitly deleted because `PhysicalCore` has fields
of reference type. Switch to explicitly deleting it to avoid a Clang
warning.
The move *constructor* is still defaulted, and is required to exist due
to the use of `std::vector<PhysicalCore>`.
2020-12-06 19:02:04 -05:00
comex
3373149fdc
hle: Type check ResponseBuilder::Push arguments, and fix use in vi.cpp
...
- Add a type check so that calling Push with an invalid type produces a
compile error rather than a linker error.
- vi.cpp was calling Push with a variable of type `std::size_t`.
There's no explicit overload for `size_t`, but there is one for `u64`,
which on most platforms is the same type as `size_t`. On macOS,
however, it isn't: both types are 64 bits, but `size_t` is `unsigned
long` and `u64` is `unsigned long long`. Regardless, it makes more
sense to explicitly use `u64` here instead of `size_t`.
2020-12-06 18:59:22 -05:00
comex
feac654ba0
core: Mark unused fields as [[maybe_unused]]
2020-12-06 18:36:10 -05:00
comex
5cb1a343d1
boxcat: Avoid unnecessary object copy
2020-12-06 18:31:13 -05:00
comex
716ae72aac
nvdrv: Remove useless re-declaration of pure virtual methods that were already declared in the superclass
2020-12-06 18:24:33 -05:00
bunnei
1bdb756d28
hle: kernel: Process: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
9b492430bb
hle: kernel: Thread: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
ed4d1e2ade
hle: kernel: KScopedSchedulerLockAndSleep: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
b1b4f2337e
hle: kernel: KScopedLock: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
165d8485f0
hle: kernel: KAbstractSchedulerLock: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
960500cfd2
hle: kernel: KScheduler: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
8fd921557f
hle: kernel: KPriorityQueue: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
4d3be1816c
hle: kernel: KAffinityMask: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
357d79fb6e
hle: kernel: GlobalSchedulerContext: Various style fixes based on code review feedback.
2020-12-06 00:27:13 -08:00
bunnei
b1326d9230
hle: kernel: Use C++ style comments in KScheduler, etc.
2020-12-06 00:03:24 -08:00
bunnei
bc59ca92b6
kernel: KScopedSchedulerLockAndSleep: Remove unused ctor.
2020-12-06 00:03:24 -08:00
bunnei
b9b7e4f915
kernel: time_manager: Add missing lock guards.
2020-12-06 00:03:24 -08:00
bunnei
ccce6cb3be
hle: kernel: Migrate to KScopedSchedulerLock.
2020-12-06 00:03:24 -08:00
bunnei
4756cb203e
hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler.
2020-12-06 00:03:24 -08:00
bunnei
8d3e06349e
hle: kernel: Separate KScheduler from GlobalSchedulerContext class.
2020-12-06 00:03:24 -08:00
bunnei
9e29e36a78
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
2020-12-06 00:03:24 -08:00
bunnei
c10a37e5b6
hle: kernel: physical_core: Clear exclusive state after each run.
...
- This is closer to pre-multicore behavior, and works a bit better.
2020-12-06 00:03:24 -08:00
bunnei
7e5d0f1fe3
hle: kernel: Port KAbstractSchedulerLock from Mesosphere.
2020-12-06 00:03:24 -08:00
bunnei
39d356782e
hle: kernel: svc: Remove reschedule on svcBreak.
...
- This breaks things, and is unnecessary, since emulation will be done at this point.
2020-12-06 00:03:24 -08:00
bunnei
d58a609ae4
hle: kernel: process: Add schedule count tracking, to be used for yield impl.
2020-12-06 00:03:24 -08:00
bunnei
493263f415
hle: kernel: svc: Remove unnecessary hack in svcSleep.
2020-12-06 00:03:24 -08:00
bunnei
a3ccac3eb7
common: Port KPriorityQueue from Mesosphere.
2020-12-06 00:03:24 -08:00
bunnei
e18ee8d681
hle: kernel: Port KAffinityMask from Mesosphere.
2020-12-06 00:03:24 -08:00
Lioncash
f95602f152
video_core: Resolve more variable shadowing scenarios pt.3
...
Cleans out the rest of the occurrences of variable shadowing and makes
any further occurrences of shadowing compiler errors.
2020-12-05 16:02:23 -05:00
Morph
f6d4a289d5
applets: Resolve variable shadowing
2020-12-05 08:37:13 -05:00
Morph
c2f83c04cb
nim: Stub IsLargeResourceAvailable
...
- Used by Immortals Fenyx Rising
2020-12-04 09:53:21 -05:00
bunnei
69aaad9b96
Merge pull request #4996 from bunnei/use-4jits
...
Kernel: Refactor to use 4-instances of Dynarmic & various cleanups and improvements
2020-12-03 15:32:45 -08:00
bunnei
88089c8754
Merge pull request #5000 from lioncash/audio-error
...
audio_core: Make shadowing and unused parameters errors
2020-12-02 23:08:43 -08:00
Lioncash
1ea6bdef05
audio_core: Make shadowing and unused parameters errors
...
Moves the audio code closer to enabling warnings as errors in general.
2020-12-03 00:54:31 -05:00
bunnei
4b9e1b6586
kernel: scheduler: Minor cleanup to remove duplicated code.
2020-11-29 01:31:52 -08:00
bunnei
b7ef581c6e
kernel: time_manager: Protect access with a mutex.
2020-11-29 01:31:52 -08:00
bunnei
c2ad1243ba
hle: kernel: thread: Remove unused "Running" state.
2020-11-29 01:31:52 -08:00
bunnei
63fd1bb503
core: arm: Implement InvalidateCacheRange for CPU cache invalidation.
2020-11-29 01:31:52 -08:00
bunnei
c0870315fd
hle: kernel: time_manager: Avoid a crash on process exit.
2020-11-29 01:31:51 -08:00
bunnei
9705f651b2
hle: kernel: AddressArbiter: Remove unused code.
2020-11-29 01:31:51 -08:00
bunnei
9423347c1b
hle: kernel: SynchronizationObject: Use atomic_bool for is_signaled.
2020-11-29 01:31:51 -08:00
bunnei
c042a89113
common: fiber: Use boost::context instead of native fibers on Windows.
2020-11-29 01:31:51 -08:00
bunnei
7b642c7781
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
2020-11-29 01:31:51 -08:00
bunnei
6750b4d3af
Merge pull request #4998 from Morph1984/bioshock-patch
...
hid: Check if applet_resource exists in InitializeVibrationDevice
2020-11-28 23:20:23 -08:00
german
4eb7327559
Add missing types to NpadCommunicationMode
2020-11-28 21:56:02 -06:00
bunnei
312a8bd4b4
Merge pull request #5021 from german77/StubCommunicationMode
...
HID: Stub set and get NpadCommunicationMode
2020-11-28 15:22:46 -08:00
Lioncash
073e07ae2d
savedata_factory: Eliminate usage of the global system instance
...
Now there's only two meaningful instances left in core.
2020-11-27 09:45:08 -05:00
german
3898d8f0d7
Stub set and get NpadCommunicationMode
2020-11-26 21:35:11 -06:00
Lioncash
1a954b2a59
service: Eliminate usages of the global system instance
...
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
2020-11-26 20:03:11 -05:00
bunnei
322349e8cc
Merge pull request #4975 from comex/invalid-syncpoint-id
...
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
2020-11-26 01:27:24 -08:00
bunnei
ebcee03b0c
Merge pull request #4981 from ogniK5377/ioctl-ctrl
...
nvservices: Reintroducee IoctlCtrl
2020-11-25 21:48:57 -08:00
Morph
6f70e1b1ff
hid: Check if applet_resource exists in InitializeVibrationDevice
2020-11-25 13:33:30 -05:00
bunnei
4fb5ca80c0
service: am: Implement ExecuteProgram and required stubs.
...
- This is used by Super Mario 3D All-Stars.
2020-11-24 15:17:43 -08:00
bunnei
7791cc8c2e
hle: services: Fix a crash with improper NVFlinger lifetime management. ( #4977 )
...
* hle: services: Fix a crash with improper NVFlinger lifetime management.
- This crash would happen when attempting to shutdown yuzu early on in boot.
2020-11-24 14:31:58 -08:00
comex
e8b2fd21d8
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
...
- Use .at() instead of raw indexing when dealing with untrusted indices.
- For the special case of WaitFence with syncpoint id UINT32_MAX,
instead of crashing, log an error and ignore. This is what I get when
running Super Mario Maker 2.
2020-11-24 12:59:41 -05:00
Rodrigo Locatti
7afb7a9494
Merge pull request #4972 from lioncash/unused4
...
svc: Remove unnecessary [[maybe_unused]] tag
2020-11-24 04:25:59 -03:00
Chloe Marcec
ab25d1fe9a
nvservices: Reintroducee IoctlCtrl
...
Fixes regression caused by #4907 which caused games like Breath of the Wild 1.0.0 not to boot.
2020-11-24 16:40:23 +11:00
Lioncash
874be0e3e1
svc: Remove unnecessary [[maybe_unused]] tag
...
The parameter is used in this function, so this suppression isn't
necessary.
2020-11-23 10:17:20 -05:00
bunnei
3a85bc1e77
Merge pull request #4944 from lioncash/system-rem
...
patch_manager: Remove usages of the global system instance
2020-11-21 22:12:34 -08:00
bunnei
afd0e2ee87
Merge pull request #4907 from ogniK5377/nvdrv-cleanup
...
core: Make nvservices more standardized
2020-11-20 22:15:44 -08:00
bunnei
3794c91145
olsc: Move member initialization to after member functions.
2020-11-20 10:50:50 -08:00
bunnei
6e37676482
hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions.
...
- Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working.
2020-11-19 12:36:09 -08:00
Lioncash
6f8a06bac5
patch_manager: Remove usages of the global system instance
...
With this, only 19 usages of the global system instance remain within
the core library.
We're almost there.
2020-11-18 09:36:48 -05:00
Morph
ad50209383
hid: Reimplement Begin/EndPermitVibrationSession
...
Upon further investigation, these commands allow temporary vibrations even when the "Controller Vibration" system setting is disabled. As a result, vibrations are allowed when either the system setting or this flag is set to true. Therefore, we can only block vibrations when both flags are set to false.
2020-11-15 23:33:21 -05:00
Morph
d8ad2f3484
controllers/npad: Load input devices on init
2020-11-15 23:33:21 -05:00
Morph
97b2220a82
general: Fix compiler warnings on linux and miscellaneous changes
2020-11-15 23:33:21 -05:00
Morph
30e0d1c973
controllers/npad: Remove the old vibration filter
...
Previously we used a vibration filter that filters out amplitudes close to each other. It turns out there are cases where this results into vibrations that are too inaccurate. Remove this and move the 100Hz vibration filter (Only allowing a maximum of 100 vibrations per second) from sdl_impl to npad when enable_accurate_vibrations is set to false.
2020-11-15 23:33:21 -05:00
Morph
978ca65f59
hid: Implement InitializeVibrationDevice and IsVibrationDeviceMounted
2020-11-15 23:33:20 -05:00
Morph
e9e1876e82
input_common: Add VibrationDevice and VibrationDeviceFactory
...
A vibration device is an input device that returns an unsigned byte as status.
It represents whether the vibration device supports vibration or not.
If the status returns 1, it supports vibration. Otherwise, it does not support vibration.
2020-11-15 23:33:20 -05:00
Morph
38110dd485
configure_input: Add per-player vibration
...
Allows for enabling and modifying vibration and vibration strength per player.
Also adds a toggle for enabling/disabling accurate vibrations.
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-11-15 23:33:20 -05:00
Morph
d6a41cfc21
settings: Remove global vibration strength modifier
...
This will be replaced in favor of per-player vibration strength modifiers.
2020-11-15 23:33:20 -05:00
Morph
92fa5257c7
hid: Mark Begin/EndPermitVibrationSession as stubs
...
The implementation of these commands seem incomplete and causes rumble in Super Mario Party to stop working since only EndPermitVibrationSession is called. Thus, these are better off being marked as a stub until this can be investigated more thoroughly.
2020-11-15 23:33:20 -05:00
Morph
373408ae8c
controllers/npad: Send an empty vibration on destruction/deactivation
...
This stops all controllers from continuously vibrating when emulation is stopped.
2020-11-15 23:33:20 -05:00
Morph
70f16f1722
hid: Stub IsVibrationDeviceMounted
...
- Used in Super Mario Odyssey
2020-11-15 23:33:20 -05:00
Morph
9b501af8e3
controllers/npad: Add heuristics to reduce rumble state changes
...
Sending too many state changes in a short period of time can cause massive performance issues.
As a result, we have to use several heuristics to reduce the number of state changes to minimize/eliminate this performance impact while maintaining the quality of these vibrations as much as possible.
2020-11-15 23:33:20 -05:00
Morph
652d6766d5
configure_input: Hook up the vibration percentage spinbox
...
This allows setting the vibration strength percentage anywhere from 1% to 100%.
Also hooks up the remaining motion button and checkbox in the Controller Applet.
2020-11-15 23:33:20 -05:00
Morph
e02ef3c3be
controllers/npad: Stop games from vibrating incorrect controllers
...
Fixes vibration in 1-2 Switch and potentially other games where they would vibrate both players' joycons at the same time.
2020-11-15 23:33:20 -05:00
Morph
07b81f57ba
hid: Fix controller rumble based on new research
...
This fixes the issue where rumble is only sent to the first controller.
Now, individual controllers can receive their own rumble commands.
2020-11-15 23:33:20 -05:00
Morph
31de52513e
hid: Pop a struct of parameters instead of popping individual parameters
...
Some parameters need to be doubleword aligned due to the presence of the applet_resource_user_id.
Previously, this value was invalid in many commands where it was not doubleword aligned when popped.
2020-11-15 23:33:20 -05:00
Morph
e3c2749986
hid: Reorder all HID commands
...
Reorders all HID commands in command id order.
2020-11-15 23:33:20 -05:00
Morph
b92bf51ae1
hid: Implement GetVibrationDeviceInfo
...
The first u32 describes the vibration device type which is a Linear Resonant Actuator used in Nintendo Switch controller hardware.
The second u32 describes the vibration device position, in this case distinguishing between left and right vibration actuators.
Pro Controllers have 2 LRAs each that can vibrate independently of each other, which means they have 2 distinct vibration device handles to distinguish between the two actuators.
Similarly for joycons, the left joycon can be distinguished from the right joycon through the vibration device handle since each joycon has 1 LRA.
2020-11-15 23:33:20 -05:00
Morph
16e2e1c45f
hid: Stub InitializeVibrationDevice
2020-11-15 23:33:20 -05:00
Morph
428ce8ec29
controllers/npad: Rename NPadType to NpadStyleSet
...
This more accurately represents the underlying type and avoids confusion with NpadType
2020-11-15 23:33:20 -05:00
Morph
0a966e2cac
controllers/npad: Add DeviceHandle struct
...
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
2020-11-15 23:33:20 -05:00
Morph
8f2959f680
settings: Preparation for per-game input settings
2020-11-15 23:33:20 -05:00
Morph
c0c4ed0d3b
controllers/npad: Connect a controller on init if none are connected
2020-11-15 23:33:19 -05:00
bunnei
87f220efff
Merge pull request #4895 from Morph1984/cave-story-plus-applet-fix
...
applets/controller: Introduce additional checks for mode and caller
2020-11-12 21:55:06 -08:00
bunnei
c22d0d9945
Merge pull request #4901 from bunnei/caps-stub
...
hle: service: caps_u: Stub GetAlbumFileList3AaeAruid.
2020-11-09 21:20:08 -08:00
Chloe Marcec
fc4d692c50
Addressed issues
2020-11-10 15:57:36 +11:00
Chloe Marcec
31c12de0fe
core: Make nvservices more standardized
2020-11-10 15:57:35 +11:00
Lioncash
da7be67daf
ipc_helpers: Remove usage of the global system instance
...
Resolves numerous deprecation warnings throughout the codebase due to
inclusion of this header. Now building core should be significantly less
noisy (and also relying on less global state).
This also uncovered quite a few modules that were relying on indirect
includes, which have also been fixed.
2020-11-08 15:58:11 -05:00
Morph
a6ecdf42bc
applets: Rename LibraryAppletVersion to ControllerAppletVersion
2020-11-08 10:04:12 -05:00
Morph
9efbf5309f
applets/controller: Pop normal data for StrapGuide and FirmwareUpdate
2020-11-08 09:35:25 -05:00
Morph
af1183a993
applets/controller: Introduce additional checks for mode and caller
...
Some games like Cave Story+ set invalid values in the ControllerPrivateArg's mode and caller fields.
Use other fields to determine the appropriate mode and caller should either or both fields be invalid.
2020-11-08 09:35:25 -05:00
Morph
88192af8ac
applets/controller: Add ControllerUpdateFirmwareArg struct
2020-11-08 09:35:25 -05:00
bunnei
dc5396a466
video_core: dma_pusher: Remove integrity check on command lists.
...
- This seems to cause softlocks in Breath of the Wild.
2020-11-07 00:08:19 -08:00
bunnei
af477fb8c5
Merge pull request #4888 from lioncash/unicorn-remove
...
core: Remove usage of unicorn
2020-11-06 22:39:05 -08:00
bunnei
a0d7a2732d
hle: service: caps_u: Stub GetAlbumFileList3AaeAruid.
...
- This works similiar to GetAlbumContentsFileListForApplication.
- Since we do not implement the album, this should be safe to stub for now.
- Used by Super Smash Bros. Ultimate (newer updates) in World of Light.
2020-11-06 22:23:15 -08:00
bunnei
087f52e872
Merge pull request #4858 from lioncash/initializer
...
General: Resolve a few missing initializer warnings
2020-11-04 12:10:10 -08:00
Chloe
6bbbbe8f85
Merge pull request #4869 from bunnei/improve-gpu-sync
...
Improvements to GPU synchronization & various refactoring
2020-11-04 18:36:55 +11:00
Lioncash
fc6db97a09
core: Remove usage of unicorn
...
Unicorn long-since lost most of its use, due to dynarmic gaining support
for handling most instructions. At this point any further issues
encountered should be used to make dynarmic better.
This also allows us to remove our dependency on Python.
2020-11-03 20:22:05 -05:00
bunnei
448e4d5c2a
Merge pull request #4878 from bunnei/unload-nrr
...
hle: service: ldr: Implement UnloadNrr.
2020-11-03 08:52:40 -08:00
bunnei
848bdf8a40
fixup! hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other improvements.
2020-11-01 01:52:38 -07:00
bunnei
e67b8678f8
hle service: nvdrv: nvhost_gpu: Update to use SyncpointManager and other improvements.
...
- Refactor so that SubmitGPFIFO and KickoffPB use shared functionality.
- Implement add_wait and add_increment flags.
2020-11-01 01:52:38 -07:00
bunnei
1d4cbb92f2
service: hle: nvflinger: Fix potential shutdown crash when GPU is destroyed.
2020-11-01 01:52:38 -07:00
bunnei
66edfd61c6
hle service: nvdrv: nvhost_ctrl: Update to use SyncpointManager.
2020-11-01 01:52:37 -07:00
bunnei
4a3fd97e48
hle service: nvdrv: Update to instantiate SyncpointManager.
2020-11-01 01:52:34 -07:00
bunnei
d567b7e841
hle: service: nvdrv: Implement SyncpointManager, to manage syncpoints.
2020-11-01 01:51:54 -07:00
Levi Behunin
bca9591660
Rename to align with switchbrew and remove gpu function ( #4714 )
...
* Rename to align with switchbrew
* Rename to align with switchbrew and remove gpu function that checks if clearing should be done.
2020-11-01 01:24:17 -07:00
bunnei
a0e5cccb92
hle: service: ldr: Implement UnloadNrr.
...
- Used by Final Fantasy X/X-2 HD Remaster.
2020-10-31 01:22:53 -07:00
Jan Beich
50e52ade85
video_core: unbreak -Werror in NVDEC with Clang
...
src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp:41:15: error: unused variable 'OutOfMemory' [-Werror,-Wunused-const-variable]
constexpr u32 OutOfMemory{static_cast<u32>(-12)};
^
2020-10-30 16:43:10 +00:00
Lioncash
5553bd3ba2
General: Resolve a few missing initializer warnings
...
Resolves a few -Wmissing-initializer warnings.
2020-10-29 19:37:07 -04:00
Morph
9cfc5fee2f
kernel/process: Add missing <ctime> include
...
Fixes compilation on MSVC
2020-10-29 03:17:20 -04:00
bunnei
c5134cbf3a
Merge pull request #4835 from lat9nq/rng-default-time
...
kernel: Use the current time as the default RNG seed
2020-10-28 22:51:29 -07:00
bunnei
7af2cb4318
Merge pull request #4846 from lioncash/service-fn
...
service: Update function tables
2020-10-28 13:47:56 -07:00
Lioncash
020519def8
service: Update function tables
...
Updates function tables according to info on SwitchBrew.
2020-10-27 21:19:46 -04:00
bunnei
d33399e1f4
Merge pull request #4729 from ameerj/nvdec-prod
...
video_core: NVDEC Implementation
2020-10-26 23:02:42 -07:00
ReinUsesLisp
ce69ff2890
hle/kernel: Remove unused registered_core_threads to fix data races
...
This member was only used on asserts and it triggered data races.
Remove it to fix them.
2020-10-27 01:55:39 -03:00
ameerj
eb67a45ca8
video_core: NVDEC Implementation
...
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library.
The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data.
To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library.
Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header.
Async GPU is not properly implemented at the moment.
Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-10-26 23:07:36 -04:00
lat9nq
8bd246032a
kernel: Use the current time as the default RNG seed
...
Use the current time, not zero, as the default RNG seed.
2020-10-26 21:42:11 -04:00
bunnei
3984bb6def
hle: services: TimeZoneContentManager: This can be made explicit.
2020-10-26 16:11:45 -07:00
Rodrigo Locatti
ae3a755d13
Merge pull request #4828 from lioncash/lockguard
...
general: Use template deduction guides for lock_guard
2020-10-25 16:55:54 -03:00
Lioncash
98f4c5e7b8
general: Use template deduction guides for lock_guard
...
Same behavior, less code.
2020-10-25 13:53:22 -04:00
bunnei
e7042163c8
Merge pull request #4792 from bunnei/rtc-fix
...
service: time: Update current time with changes to RTC setting.
2020-10-22 20:46:54 -07:00
Lioncash
ea20b5c970
core: Fix clang build pt.3
...
Should finally resolve building with clang.
2020-10-21 22:14:23 -04:00
bunnei
3d592972dc
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
Lioncash
fdd9154069
kernel: Fix build with recent compiler flag changes
...
This slipped through the cracks due to another change being merged
before the compiler flag changes.
2020-10-20 20:23:18 -04:00
LC
88d5140cf2
Merge pull request #4796 from lioncash/clang
...
core: Fix clang build
2020-10-20 19:19:12 -04:00
bunnei
940c3bf68d
Merge pull request #4390 from ogniK5377/get-applet-inf-stub
...
nifm: GetAppletInfo stub
2020-10-20 15:59:19 -07:00
David Marcec
298b50e220
Added remaining params
2020-10-20 16:45:01 +11:00
David Marcec
acd35e1b60
nifm: GetAppletInfo stub
...
Fixes crash for Catherine Full Body
2020-10-20 16:42:40 +11:00
bunnei
60bd54776a
Merge pull request #4788 from ReinUsesLisp/lockfree-host-thread
...
kernel: Implement host thread register methods without locking
2020-10-19 22:31:52 -07:00
bunnei
e7a26ecec5
Merge pull request #4785 from Morph1984/fs-hades
...
filesystem: Fix CreateDirectory and DeleteFile
2020-10-19 16:04:01 -07:00
bunnei
54b977acaa
Merge pull request #4783 from bunnei/nvdrv-freespace
...
hle: service: nvdrv: Implement nvhost_as_gpu::FreeSpace.
2020-10-18 12:41:18 -07:00
bunnei
2190f1a2b7
Merge pull request #4801 from lioncash/missing-bound
...
mii/manager: Make use of unused lower bound in GetRandomValue()
2020-10-17 23:32:40 -07:00
Lioncash
be1954e04c
core: Fix clang build
...
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
2020-10-17 19:50:39 -04:00
Lioncash
c1577f3448
mii/manager: Make use of unused lower bound in GetRandomValue()
...
Previously, the lower bound wasn't being used and zero was being used as
the lower bound every time this function was called.
This affects the outcome of some of the randomized entries a little bit,
for example, the lower-bound for beard and mustache flags was supposed
to be 1, not 0.
Aside from these cases, the bug didn't affect anything else.
2020-10-17 09:50:04 -04:00
bunnei
363c644730
service: bcat: Check client connection before interacting with socket.
...
- Fixes a crash when BCAT service is offline.
2020-10-16 21:16:56 -07:00
bunnei
dbd1662ae2
Merge pull request #4784 from bunnei/cancelbuffer
...
hle: service: vi: Implement BufferQueue::CancelBuffer.
2020-10-15 19:57:27 -07:00
bunnei
1d714c8c7f
service: acc: Stub IManagerForApplication::StoreOpenContext.
...
- Used by Super Mario 3D All-Stars.
2020-10-14 20:06:33 -07:00
bunnei
1f186f34a2
hle: service: vi: Implement BufferQueue::CancelBuffer.
...
- This is used by Super Mario 3D All-Stars.
2020-10-13 22:11:52 -07:00
ReinUsesLisp
b9a9b83bee
kernel: Implement host thread register methods without locking
...
Locks on GetCurrentHostThreadID were causing performance issues
according to Visual Studio's profiler. It was consuming twice the time
as arm_interface.Run(). The cost was not in the function itself but in
the lockinig it required.
Reimplement these functions using atomics and static storage instead of
an unordered_map. This is a side effect to avoid locking and using linked
lists for reads.
Replace unordered_map with a linear search.
2020-10-13 18:00:25 -03:00
Lioncash
39c8d18feb
core/CMakeLists: Make some warnings errors
...
Makes our error coverage a little more consistent across the board by
applying it to Linux side of things as well. This also makes it more
consistent with the warning settings in other libraries in the project.
This also updates httplib to 0.7.9, as there are several warning
cleanups made that allow us to enable several warnings as errors.
2020-10-13 13:16:49 -04:00
Morph
8db3feae19
filesystem: Fix CreateDirectory and DeleteFile
...
Add a check if dir is nullptr (does not exist)
Fixes save game creation in Hades
2020-10-13 00:57:04 -04:00
bunnei
62c6c9f6a6
service: time: Update current time with changes to RTC setting.
...
- This can be used to advance time, e.g. for Pokemon Sword/Shield pokejobs.
2020-10-12 18:09:15 -07:00
bunnei
b260847218
hle: service: nvdrv: Implement nvhost_as_gpu::FreeSpace.
...
- This is used by Super Mario 3D All-Stars.
2020-10-12 17:39:14 -07:00
bunnei
92adb69fa7
Merge pull request #4736 from Morph1984/home-button-input-protection-stub
...
hid: Stub HomeButtonInputProtection service commands
2020-10-07 14:54:05 -07:00
bunnei
32b4627a9c
Merge pull request #4737 from Morph1984/setshimlibraryversion-stub
...
capsrv: Stub 3 variants of SetShimLibraryVersion
2020-10-06 21:39:38 -07:00
bunnei
614bd0ee8c
Merge pull request #4742 from german77/InputFilter
...
HID: Only use inputs corresponding to controller type
2020-10-05 21:40:09 -07:00
bunnei
182cf7d631
Merge pull request #4734 from german77/motionfusion
...
HID: Add Stub for EnableSixAxisSensorFusion
2020-10-01 22:39:39 -07:00
german
2f47b27654
Only use inputs corresponding to controller type
2020-10-01 19:39:53 -05:00
german
283616dbd8
Stubbed EnableSixAxisSensorFusion
2020-09-30 10:00:24 -05:00
David
4d0ae1a17a
Merge pull request #4291 from german77/ImplementControllerRumble
...
input_common: First implementation of controller rumble
2020-09-30 21:24:11 +10:00
David
f7808f5658
Merge pull request #4726 from lioncash/applet
...
frontend/controller: Eliminate dependency on the global system instance
2020-09-30 21:22:45 +10:00
Morph
91bd2281bf
caps_c: Stub SetShimLibraryVersion
...
- Used by caps_su SetShimLibraryVersion
2020-09-30 07:19:46 -04:00
Morph
7d287a6fb0
caps_u: Stub SetShimLibraryVersion
...
- Used in Super Smash Bros. Ultimate
2020-09-30 07:19:46 -04:00
Morph
9a251339dc
caps_su: Properly stub SetShimLibraryVersion
2020-09-30 07:19:46 -04:00
Morph
6380731486
hid: Stub HomeButtonInputProtection service commands
...
- Used in 1-2 Switch. Given that we do not emulate the functionality of the home button yet, we can stub this for now.
2020-09-30 06:38:24 -04:00
bunnei
392c1b96bc
Merge pull request #4705 from german77/SplitMotionPoller
...
HID: Use different timing for motion
2020-09-30 01:04:22 -07:00
bunnei
02ea62568f
Merge pull request #1703 from DarkLordZach/nvdec-ioctl
...
nvdrv: Stub nvdec/vic ioctls to bypass nvdec movies
2020-09-29 15:00:48 -07:00
german
ab88c2f611
First implementation of controller rumble
2020-09-29 10:38:25 -04:00
Lioncash
3e4a0a13cb
frontend/controller: Eliminate dependency on the global system instance
2020-09-25 19:23:20 -04:00
LC
4d4afc1502
Merge pull request #4717 from lioncash/debug
...
service: Restore "unused" function
2020-09-25 00:07:19 -04:00
Lioncash
f3a1bf53f9
service: Restore "unused" function
...
Turns out this function is actually used, but within a trace log.
2020-09-25 00:06:40 -04:00
bunnei
fa4294cc6f
Merge pull request #4678 from Morph1984/LoadOpenContext-partial-impl
...
acc: Partially implement LoadOpenContext
2020-09-24 11:21:25 -07:00
german
ddff03cff5
Use different timing for motion
2020-09-23 19:09:33 -05:00
Lioncash
ff45c39578
General: Make use of std::nullopt where applicable
...
Allows some implementations to avoid completely zeroing out the internal
buffer of the optional, and instead only set the validity byte within
the structure.
This also makes it consistent how we return empty optionals.
2020-09-22 17:32:33 -04:00
Morph
7a504a9365
acc: Stub LoadOpenContext
...
This is used in multiple games such as:
- Clubhouse Games: 51 Worldwide Classics
- Grandia HD Collection
- XCOM 2 Collection
- Baldur's Gate 1/2
- Dr Kawashima's Brain Training
- Super Mario 3D All-Stars
2020-09-21 01:01:02 -04:00
bunnei
754109fd54
Merge pull request #4683 from Morph1984/NpadHandheldActivationMode-impl
...
hid: Implement Get/SetNpadHandheldActivationMode
2020-09-20 12:39:20 -07:00
bunnei
8a85a562ed
Merge pull request #4643 from FearlessTobi/decrease-pad-update-interval
...
Test: Decrease pad_update_ns
2020-09-19 00:39:50 -07:00
Morph
ab961e0701
hid: Implement Get/SetNpadHandheldActivationMode
...
- Used in Clubhouse Games: 51 Worldwide Classics
2020-09-18 10:10:30 -04:00
Morph
40a72e9cd5
am: Stub GetPreviousProgramIndex
...
- Used in Super Mario 3D All-Stars
2020-09-17 22:03:02 -04:00
Rodrigo Locatti
9bdca01c27
Merge pull request #4665 from lioncash/sm-kernel
...
service/sm: Eliminate dependency on the global system instance
2020-09-17 21:20:39 +00:00
Rodrigo Locatti
8100275309
Merge pull request #4666 from lioncash/unused-func
...
service: Remove unused funcation
2020-09-17 21:19:48 +00:00
Rodrigo Locatti
131532b570
Merge pull request #4671 from lioncash/nfp-copy
...
command_generator/nfp: Eliminate unnecessary copies
2020-09-17 21:19:12 +00:00
bunnei
3f6d83b27c
Merge pull request #4594 from german77/MotionHID
...
hid/configuration: Implement motion controls to HID
2020-09-17 12:39:01 -07:00
Lioncash
aca3621146
nfp: Eliminate two unnecessary copies
...
GetAmiiboBuffer() returns by const reference, so we can use a reference
instead of taking the returned buffer by value.
2020-09-17 13:35:55 -04:00
Lioncash
8bbd82863d
service: Remove unused funcation
...
This is now completely unused, so it can be removed.
2020-09-17 11:03:26 -04:00
Lioncash
057aa6275d
service/sm: Slightly more efficient string name validation
...
We can check the end of the string first for null-termination, rather
than the beginning of the string.
2020-09-17 10:54:12 -04:00
Lioncash
78b1bc3b61
service/sm: Eliminate dependency on the global system instance
2020-09-17 10:43:54 -04:00
Lioncash
0e80567bef
file_sys/bis_factory: Eliminate usage of the global system accessor
2020-09-16 18:16:04 -04:00
Lioncash
ec2a6e5ba8
kernel: Remove all dependencies on the global system instance
...
With this, the kernel finally doesn't depend directly on the global
system instance anymore.
2020-09-14 14:03:13 -04:00
bunnei
042567e4b2
Merge pull request #4636 from lioncash/kernel-hle
...
service: Remove two usages of the global system accessor
2020-09-14 09:17:10 -07:00
bunnei
5fc6bf96d8
Merge pull request #4323 from ReinUsesLisp/no-spin
...
kernel/scheduler: Use std::mutex instead of spin lock
2020-09-11 23:23:53 -07:00
bunnei
ec634b6a88
Merge pull request #4634 from lioncash/blocking
...
bsd: Resolve a few warnings
2020-09-11 15:17:34 -07:00
bunnei
324029d4f9
Merge pull request #4310 from ogniK5377/apollo-1-prod
...
audio_core: Apollo Part 1, AudioRenderer refactor
2020-09-11 10:57:27 -04:00
bunnei
03179ecafe
Merge pull request #4597 from Morph1984/mjolnir-p2
...
Project Mjölnir: Part 2 - Controller Applet
2020-09-10 19:28:23 -04:00
FearlessTobi
57162e1df3
Test: Decrease pad_update_ns
...
There have been reports of quite heavy input lag in the past.
Compared to Citra for example, our pad_update_ns value is very high.
So let's decrease it and see if it helps with this problem.
2020-09-10 16:38:53 +02:00
Lioncash
ffdf8c0cb3
service: Remove two usages of the global system accessor
...
Removes more instances of reliance on global state.
2020-09-07 03:18:45 -04:00
Lioncash
40968e3993
bsd: Resolve unused value within SendToImpl
...
Previously the address provided to SendToImpl would never be propagated
to SendTo(). This fixes that.
2020-09-07 01:06:30 -04:00
Lioncash
cd643ab5c9
bsd: Resolve sign comparison warnings
2020-09-07 01:06:27 -04:00
Lioncash
180fa6859f
sockets_translate: Make use of designated initializers
...
Same behavior, less typing.
2020-09-07 00:53:10 -04:00
Lioncash
188a3cf74c
blocking_worker: Make use of templated lambda
...
We can simplify this a little by explicitly specifying the typename for
the lambda function.
2020-09-07 00:47:46 -04:00
Lioncash
9652973db2
blocking_worker: Resolve -Wdocumentation warning
2020-09-07 00:45:53 -04:00
bunnei
e126021ffe
Merge pull request #4397 from ReinUsesLisp/bsd
...
services: Implement most of bsd:s and GetCurrentIpAddress from nifm
2020-09-05 22:40:59 -04:00
Morph
5b6268d26a
configure_input: Hook up the motion button and checkbox
...
This allows toggling motion on or off, and allows access to the motion configuration.
Also changes the [waiting] text for motion buttons to Shake! as this is how motion is connected to a player.
2020-09-05 09:46:34 -04:00
german
6ee8eab670
Add cemu hook changes related to PR #4609
2020-09-04 21:48:13 -05:00
german
0774b17846
Remove RealMotionDevice
2020-09-04 21:48:13 -05:00
Morph
df3cbd4758
controllers/npad: Simplify motion entry assignment
...
Simplifies the motion assignment in the Dual Joycon entry and assigns index 1 of the motion entry (Motion 2) for the right joycon.
2020-09-04 21:48:13 -05:00
german
ff679f3d17
Include HID and configuration changes related to motion
2020-09-04 21:48:03 -05:00
Morph
0e33b19ae0
hid: Implement MergeSingleJoyasDualJoy
...
- Used in multiple games such as Super Mario Odyssey.
2020-09-04 15:38:33 -04:00
Morph
076e4d44c3
Address feedback
2020-09-04 12:23:25 -04:00
Morph
f95ea04995
applets/controller: Set min_players to have a minimum value of 1.
...
- Some games like Shipped have a minimum requirement of 0 connected players and is undesired behavior. We must require a minimum of 1 player connected regardless of what games may ask.
2020-09-04 12:23:25 -04:00
Morph
7299356f37
applets/controller: Implement fallback applet for the SDL frontend
...
Implement the fallback applet for the SDL frontend, connecting only the minimum amount of players required.
2020-09-04 12:23:25 -04:00
Morph
5ce3015945
applets/controller: Implement "Explain Text"
...
"Explain Text" is additional text that is shown for each player in the controller applet.
2020-09-04 12:23:25 -04:00
Morph
5219615418
Project Mjölnir: Part 2 - Controller Applet
...
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-09-04 12:23:25 -04:00
bunnei
ba5419b965
Merge pull request #4590 from ReinUsesLisp/tsan-sched
...
hle/scheduler: Fix data race in is_context_switch_pending
2020-09-03 14:39:57 -04:00
bunnei
38980b2471
Merge pull request #4568 from lioncash/fsp
...
fsp_srv: Resolve -Wmaybe_uninitialized warning in OpenSaveDataFileSystem()
2020-09-02 23:07:03 -04:00
bunnei
57e43682ed
Merge pull request #4564 from lioncash/file-include
...
file_sys: Replace inclusions with forward declarations where applicable
2020-09-02 23:06:38 -04:00
bunnei
3dcccabd1d
Merge pull request #4382 from FearlessTobi/port-udp-config
...
yuzu: Add motion and touch configuration from Citra
2020-09-01 13:56:37 -04:00
bunnei
a1f13a3662
Merge pull request #4589 from ReinUsesLisp/tsan-host
...
hle/kernel: Fix data race in GetCurrentHostThreadID
2020-08-31 21:20:49 -04:00
FearlessTobi
e6bd1fd1b8
yuzu: Add motion and touch configuration
2020-08-29 18:56:34 +02:00
Morph
eb149ec696
controllers/npad: Fix inconsistencies with controller connection statuses
2020-08-26 02:32:32 -04:00
Morph
334ef2efdd
controllers/npad: Fix LibNX controller connection statuses
...
This allows homebrew applications to be able to properly detect connected controllers.
2020-08-26 02:32:32 -04:00
Morph
e7c174b426
controllers/npad: Fix LedPattern for P1-4
2020-08-26 02:32:32 -04:00
Morph
f0fac0c7fb
Project Mjölnir: Part 1
...
Co-authored-by: James Rowe <jroweboy@gmail.com>
Co-authored-by: Its-Rei <kupfel@gmail.com>
2020-08-26 02:32:32 -04:00
ReinUsesLisp
ccdd84a778
hle/scheduler: Fix data race in is_context_switch_pending
...
As reported by tsan, SelectThreads could write to
is_context_switch_pending holding a mutex while SwitchToCurrent reads it
without holding any.
It is assumed that the author didn't want an atomic here, so the code is
reordered so that whenever is_context_switch_pending is read inside
SwitchToContext, the mutex is locked.
2020-08-26 02:56:05 +00:00
ReinUsesLisp
36eade7f4c
hle/kernel: Fix data race in GetCurrentHostThreadID
...
As reported by tsan, host_thread_ids could be read while
any of the RegisterHostThread variants were called.
To fix this, lock the register mutex when yuzu is running in multicore
mode and GetCurrentHostThreadID is called.
2020-08-26 02:52:50 +00:00
Lioncash
4c1a95ed61
fsp_srv: Resolve -Wunused-but-set-variable warning
...
We can just log out the parameters in the meantime.
2020-08-23 17:16:32 -04:00
Lioncash
01d1b5cdaf
file_sys: Replace inclusions with forward declarations where applicable
...
Same behavior, minus unnecessary inclusions where not necessary.
2020-08-23 17:02:55 -04:00
Lioncash
85db5f4091
fsp_srv: Resolve -Wmaybe_uninitialized warning in OpenSaveDataFileSystem()
...
Initialize id to a deterministic value and also mark the unreachable
cases in the switch with UNREACHABLE().
2020-08-23 16:37:57 -04:00
Lioncash
c4ed791164
common/fileutil: Convert namespace to Common::FS
...
Migrates a remaining common file over to the Common namespace, making it
consistent with the rest of common files.
This also allows for high-traffic FS related code to alias the
filesystem function namespace as
namespace FS = Common::FS;
for more concise typing.
2020-08-16 06:52:40 -04:00
bunnei
2b601e8636
Merge pull request #4526 from lioncash/core-semi
...
core: Resolve several -Wextra-semi warnings
2020-08-15 02:14:11 -04:00
bunnei
e6f9231ef0
Merge pull request #4527 from lioncash/pessimizing2
...
software_keyboard: Resolve a pessimizing move warning
2020-08-15 02:13:44 -04:00
bunnei
cb6808b4d0
Merge pull request #4492 from lioncash/linkage
...
system_control: Make functions internally linked where applicable
2020-08-15 02:11:49 -04:00
bunnei
2aabd1eb05
Merge pull request #4463 from lioncash/lockdiscard
...
kernel/scheduler: Mark SchedulerLock constructor as nodiscard
2020-08-15 01:31:23 -04:00
Lioncash
b14277ef97
time_zone_content_manager: Collapse auto and default case
...
Prevents a useless self-assignment from occurring.
2020-08-14 10:58:58 -04:00
Lioncash
03d5a5d9de
software_keyboard: Resolve a pessimizing move warning
...
A std::vector created in place like this is already an rvalue and
doesn't need to be moved.
2020-08-14 09:14:54 -04:00
Lioncash
2296e921d2
core: Resolve several -Wextra-semi warnings
...
We can amend one of the cascade macros to require semicolons in order to
compile. In other cases, we can just remove the superfluous semicolons.
2020-08-14 09:09:20 -04:00
Lioncash
f808258ed9
kernel/scheduler: Mark SchedulerLock constructor as nodiscard
...
Allows the compiler to warn about cases where the constructor is used
but then immediately discarded, which is a potential cause of
locking/unlocking bugs.
2020-08-14 04:43:44 -04:00
Lioncash
b724a4d90c
General: Tidy up clang-format warnings part 2
2020-08-13 14:19:08 -04:00
bunnei
acfd771e79
Merge pull request #4491 from lioncash/unused-vars
...
kernel: Remove unused variables
2020-08-10 12:04:30 -04:00
bunnei
929fc849e9
Merge pull request #4457 from ogniK5377/SetScreenShotPermission
...
am: Unstub SetScreenShotPermission
2020-08-07 09:34:20 -04:00
Lioncash
8e86fa7e60
common/concepts: Rename IsBaseOf to DerivedFrom
...
This makes it more inline with its currently unavailable standardized
analogue std::derived_from.
While we're at it, we can also make the template match the requirements
of the standardized variant as well.
2020-08-07 08:09:57 -04:00
bunnei
5cc2f99fab
Merge pull request #4490 from lioncash/arbiter
...
address_arbiter/scheduler: Resolve sign conversion warnings
2020-08-06 22:28:11 -04:00
bunnei
1cc0e4b4d8
Merge pull request #4489 from lioncash/typesafe
...
ipc_helpers: Only allow trivially copyable objects with PushRaw() and PopRaw()
2020-08-05 23:20:23 -04:00
bunnei
61678c4e9f
Merge pull request #4475 from lioncash/bqueue
...
buffer_queue: Make use of designated initializers/std::nullopt where applicable
2020-08-05 16:56:46 -04:00
Lioncash
87c64c41d2
system_control: Make functions internally linked where applicable
...
These functions are only ever used internally as implementation details
for GenerateRandomRange(), so these can be given internal linkage.
2020-08-05 15:34:27 -04:00
Lioncash
a10d64ea79
kernel: Remove unused variables
...
Resolves a few compiler warnings.
2020-08-05 15:19:48 -04:00
Lioncash
9893da8e2c
scheduler: Resolve sign conversion warning
2020-08-05 15:12:29 -04:00
Lioncash
1a45b15a8c
address_arbiter: Resolve sign conversion warning
...
Makes our type conversion explicit.
2020-08-05 15:07:19 -04:00
Lioncash
a77ee63f65
ipc_helpers: Only allow trivially copyable objects with PushRaw() and PopRaw()
...
It's undefined behavior to use non-trivially copyable objects with
std::memcpy, so we can add asserts to catch usages of these at
compile-time.
2020-08-05 14:08:28 -04:00
bunnei
ba9ed7b1fe
Merge pull request #4401 from ogniK5377/GetIndirectLayerImageRequiredMemoryInfo
...
vi: IApplicationDisplayService:GetIndirectLayerImageRequiredMemoryInfo
2020-08-04 18:45:11 -04:00
bunnei
f11628b9b7
Merge pull request #4430 from bunnei/new-gpu-vmm
...
hle: nvdrv: Rewrite of GPU memory management.
2020-08-04 18:44:26 -04:00
David
723314b682
Merge pull request #4481 from lioncash/cpp-dep
...
yuzu: Resolve C++20 deprecation warnings related to lambda captures
2020-08-04 14:06:07 +10:00
David
25fb7cd16d
Merge pull request #4474 from lioncash/hle-profile
...
profile_manager: Make use of designated initializers
2020-08-04 13:51:15 +10:00
bunnei
0dbb95c42d
Merge pull request #4456 from Morph1984/stub-really-long-fs-func
...
fsp-srv: Stub Read/WriteSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute
2020-08-03 18:06:48 -07:00
bunnei
9808f244cc
Merge pull request #4482 from lioncash/ldr-sign
...
service/ldr: Resolve sign mismatch warnings
2020-08-03 11:27:13 -07:00
Lioncash
b249e4e0ce
yuzu: Resolve C++20 deprecation warnings related to lambda captures
...
C++20 deprecates capturing the this pointer via the '=' capture.
Instead, we replace it or extend the capture specification.
2020-08-03 11:54:04 -04:00
Lioncash
f525da56e5
service/ldr: Resolve sign mismatch warnings
...
We were performing an int < size_t comparison. We can just correct the
type of the induction variable.
2020-08-03 11:48:16 -04:00
Lioncash
9b837c6069
buffer_queue: Make use of std::nullopt
...
Allows compilers to eliminate unnecessary zeroing out of the optional's
buffer.
2020-08-03 09:31:51 -04:00
Lioncash
24bd068a08
buffer_queue: Make use of designated initializers
2020-08-03 09:31:51 -04:00
Lioncash
b9831fd80a
profile_manager: Make use of std::nullopt
...
Allows some implementations to completely avoid unnecessarily zeroing
out the internal buffer.
2020-08-03 09:03:42 -04:00
Lioncash
3fcaf937d2
profile_manager: Make use of designated initializers
...
More compact code.
2020-08-03 09:01:31 -04:00
David Marcec
6a0b77996b
sm: Make use of IsBaseOf for GetService
2020-08-03 21:46:14 +10:00
David
9b75481755
ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer ( #4465 )
...
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer
With the support of C++20, we can use concepts to deduce if a type is an STL container or not.
* More agressive concept for stl containers
* Add -fconcepts
* Move to common namespace
* Add Common::IsBaseOf
2020-08-03 07:28:54 -04:00
Morph
fc86cb4ca2
minor nits
2020-07-31 11:02:59 -04:00
David Marcec
e586921c28
am: Unstub SetScreenShotPermission
2020-08-01 00:44:14 +10:00
Morph
1241020093
fsp-srv: Stub Read/WriteSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute
...
Stub these 2 service commands required for Animal Crossing: New Horizons Update 1.4.0
2020-07-30 15:39:44 -04:00
Morph
45fd67c109
fs: Rename SaveDataDescriptor to SaveDataAttribute
2020-07-30 15:29:39 -04:00
ReinUsesLisp
bc699ace15
service/bsd: Handle Poll with no entries accurately
...
Testing shows that Poll called with zero entries returns -1 and signals
an errno of zero.
2020-07-28 01:51:47 -03:00
ReinUsesLisp
f7d59f3e0e
services/bsd: Implement most of bsd:s
...
This implements: Socket, Poll, Accept, Bind, Connect, GetPeerName,
GetSockName, Listen, Fcntl, SetSockOpt, Shutdown, Recv, RecvFrom,
Send, SendTo, Write, and Close
The implementation was done referencing: SwIPC, switchbrew, testing
with libnx and inspecting its code, general information about bsd
sockets online, and analysing official software.
Not everything from these service calls is implemented, but everything
that is not implemented will be logged in some way.
2020-07-28 01:48:42 -03:00
ReinUsesLisp
2c67bbf609
service/sockets: Add worker pool abstraction
...
Manage worker threads with an easy to use abstraction.
We can expand this to support thread deletion in the future.
2020-07-28 01:47:03 -03:00
ReinUsesLisp
5692c48ab7
service/sockets: Add worker abstraction to execute blocking calls asynchronously
...
This abstraction allows executing blocking functions (like recvfrom on a
socket configured for blocking) without blocking the service thread.
It is intended to be used with SleepClientThread.
2020-07-28 01:47:03 -03:00
ReinUsesLisp
80b4bd3583
service/sockets: Add translate functions
...
These functions translate from Network enumerations/structures to guest
enumerations/structures and viceversa.
2020-07-28 01:47:03 -03:00
ReinUsesLisp
22263ccaa4
service/sockets: Add enumerations and structures
...
Add guest enumerations and structures used in socket services
2020-07-28 01:47:03 -03:00
ReinUsesLisp
ef8acc9c3d
services/nifm: Implement GetCurrentIpAddress
...
This is trivially implemented using the Network abstraction
- Used by ftpd
2020-07-28 01:47:03 -03:00
bunnei
db94457205
Update src/core/hle/service/nvdrv/devices/nvmap.cpp
...
Co-authored-by: LC <mathew1800@gmail.com>
2020-07-27 18:27:20 -07:00
Lioncash
a7af349dae
core_timing: Make use of uintptr_t to represent user_data
...
Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly.
2020-07-27 21:21:01 -04:00
CrazyMax
1ffff4dab2
remove unused variable;
2020-07-27 10:36:26 +03:00
bunnei
05def61398
hle: nvdrv: Rewrite of GPU memory management.
2020-07-26 00:49:43 -04:00
Lioncash
7b070bbf62
nvflinger: Mark interface functions with return values as [[nodiscard]]
...
Not using the return value of these functions are undeniably the source
of a bug. This way we allow compilers to loudly make any future misuses
evident.
2020-07-25 19:42:45 -04:00
Lioncash
5dab23e017
nvflinger: Use return value of Lock()
...
comex reported in #4424 that we were incorrectly discarding the return
value of Lock() which is correct.
2020-07-25 19:04:53 -04:00
bunnei
a2e1810287
Merge pull request #4350 from ogniK5377/hid-update-connected
...
hid: Only update keyboard & debug pad inputs if enabled
2020-07-25 11:57:24 -07:00
David Marcec
380658c21d
audio_core: Apollo Part 1, AudioRenderer refactor
2020-07-25 12:39:34 +10:00
David Marcec
8abb31a19d
vi: IApplicationDisplayService:GetIndirectLayerImageRequiredMemoryInfo
...
Needed for dark souls and monster hunter
2020-07-21 23:06:18 +10:00
David Marcec
8248d76964
Address issues
2020-07-20 11:52:07 +10:00
David Marcec
d7d2c27b48
swkbd: Return result for Calc request for inlined swkbd
...
Fixes random swkbd popups in monster hunter
2020-07-19 18:56:16 +10:00
bunnei
4a8cb9a706
Merge pull request #4348 from lioncash/nano
...
core_timing: Make usage of nanoseconds more consistent in the interface
2020-07-18 01:45:10 -04:00
bunnei
c700079e08
Merge pull request #4345 from Morph1984/fix-createfile
...
filesystem: Create subdirectories prior to creating a file
2020-07-18 00:59:26 -04:00
bunnei
af1151b1b0
Merge pull request #4365 from lioncash/mii
...
mii/manager: Make use of designated initializers
2020-07-17 22:20:15 -04:00
bunnei
47b305387a
Merge pull request #4366 from lioncash/mii-sign
...
mii/manager: Resolve sign mismatch warnings
2020-07-17 20:13:06 -04:00
David
adbf5ca50b
Merge pull request #4357 from lioncash/unused4
...
kernel: Remove unused variables
2020-07-17 13:18:31 +10:00
David
69f8b6a53e
Merge pull request #4358 from lioncash/unused5
...
kernel/thread: Remove unimplemented function prototype
2020-07-17 13:17:52 +10:00
Lioncash
e54c940abf
mii/manager: Resolve sign mismatch warnings
...
Previously the loop termination condition was testing variables of
different signedness.
2020-07-16 21:07:04 -04:00
Lioncash
7f989378c0
mii/manager: Make use of designated initializers
...
Allows returning the structure in a more concise manner.
2020-07-16 20:45:33 -04:00
bunnei
3bbf4462db
Merge pull request #4292 from bunnei/mii-rewrite
...
hle: service: mii: Rewrite service to properly support creation of random and default miis.
2020-07-16 20:05:40 -04:00
Rodrigo Locatti
104c523d3d
Merge pull request #4327 from lioncash/desig2
...
address_space_info: Make use of designated initializers
2020-07-16 17:41:55 -03:00
Lioncash
8bef49cde5
kernel/thread: Remove unimplemented function prototype
...
This isn't used, so it can be removed.
2020-07-16 14:32:46 -04:00
Lioncash
2bab07c367
kernel: Remove unused variables
...
Resolves some compiler warnings in the Linux build.
2020-07-16 14:17:50 -04:00
Lioncash
07d080ecc8
kernel: Add missing include
2020-07-16 13:51:51 -04:00
Lioncash
f0125b2be8
cpu_manager: Mark function getters as static
...
All these do are return std::function instances of static functions, so
these can be used without an instance of the CPU manager.
2020-07-16 13:30:56 -04:00
David
0648e023ea
Merge pull request #4346 from lioncash/thread
...
kernel/handle_table: Remove usages of the global system instance
2020-07-16 23:02:04 +10:00
David Marcec
0319cc1c37
hid: Only update keyboard & debug pad inputs if enabled
...
Previously we would ignore this setting and would update the states regardless of the user setting
2020-07-16 22:28:49 +10:00
Morph
5892fc1555
Add comment to clarify the nullptr check
2020-07-16 00:15:27 -04:00
Morph
2079bb4090
filesystem: Create subdirectories prior to creating a file
...
If subdirectories exist in the given path parameter and don't exist in the real filesystem create them prior to creating the files within.
This fixes the softlocks upon save creation in The Legend of Zelda: Breath of the Wild
2020-07-16 00:15:27 -04:00
Lioncash
bef1844a51
core_timing: Make TimedCallback take std::chrono::nanoseconds
...
Enforces our desired time units directly with a concrete type.
2020-07-15 19:41:22 -04:00
Lioncash
8b50c660df
core_timing: Make use of std::chrono with ScheduleEvent
2020-07-15 18:54:15 -04:00
Lioncash
73bb87c06b
kernel/process: Move name and system context to the bottom of the member list
...
These aren't directly important or commonly used within the process, so
we can move these to the bottom to allow everything else to be more
likely to be within a cache line.
2020-07-15 13:40:18 -04:00
Lioncash
52e83f0d5c
kernel/handle_table: Remove usages of the global system instance
...
Removes even more usages of the global system instance, trimming away
more dependencies on global variables and making them explicit in the
interface.
2020-07-15 13:40:15 -04:00
Lioncash
4ad69ca96e
kernel/thread: Remove global GetCurrentThread()
...
This is only used in one place, so we can fold it into the calling code,
eliminating a place for the global system instance to be used.
2020-07-15 13:28:05 -04:00
Lioncash
f2f876e3ff
memory_layout: Remove unused data member
...
This isn't used, so it can be removed entirely, shrinking the structure
size by 8 bytes.
2020-07-13 10:51:23 -04:00
Lioncash
ed0fe04b4f
address_space_info: Use type alias to simplify code
...
We can define an alias for the index arrays and then just reuse it to
make the code nicer to read.
2020-07-13 10:42:52 -04:00
Lioncash
c3eb42de65
address_space_info: Make use of designated initializers
...
We can alter the structure so that we can use designated initializers in
the array, eliminating the comments that indicate their field names.
2020-07-13 10:42:49 -04:00
ReinUsesLisp
9b38f4fc55
kernel/scheduler: Use std::mutex instead of spin lock
...
Profiling shows that this is a highly contested mutex, causing dimishing
results compared to a OS lock. std::mutex implementations can spin for a
while before falling back to an OS lock.
This avoids wasting precious CPU cycles in a no-op.
2020-07-12 21:27:24 -03:00
bunnei
e60733aad3
Merge pull request #4275 from CrazyMax/desired_language
...
AM: fix GetDesiredLanguage:
2020-07-12 01:45:08 -04:00
bunnei
e706501c8d
hle: service: mii: Rewrite service to properly support creation of random and default miis.
2020-07-11 21:34:59 -04:00
bunnei
a0ee597b19
Merge pull request #4203 from VolcaEM/services
...
service: Update function tables
2020-07-11 00:02:36 -04:00
lat9nq
63d23835ef
configuration: implement per-game configurations ( #4098 )
...
* Switch game settings to use a pointer
In order to add full per-game settings, we need to be able to tell yuzu to switch
to using either the global or game configuration. Using a pointer makes it easier
to switch.
* configuration: add new UI without changing existing funcitonality
The new UI also adds General, System, Graphics, Advanced Graphics,
and Audio tabs, but as yet they do nothing. This commit keeps yuzu
to the same functionality as originally branched.
* configuration: Rename files
These weren't included in the last commit. Now they are.
* configuration: setup global configuration checkbox
Global config checkbox now enables/disables the appropriate tabs in the game
properties dialog. The use global configuration setting is now saved to the
config, defaulting to true. This also addresses some changes requested in the PR.
* configuration: swap to per-game config memory for properties dialog
Does not set memory going in-game. Swaps to game values when opening the
properties dialog, then swaps back when closing it. Uses a `memcpy` to swap.
Also implements saving config files, limited to certain groups of configurations
so as to not risk setting unsafe configurations.
* configuration: change config interfaces to use config-specific pointers
When a game is booted, we need to be able to open the configuration dialogs
without changing the settings pointer in the game's emualtion. A new pointer
specific to just the configuration dialogs can be used to separate changes
to just those config dialogs without affecting the emulation.
* configuration: boot a game using per-game settings
Swaps values where needed to boot a game.
* configuration: user correct config during emulation
Creates a new pointer specifically for modifying the configuration while
emulation is in progress. Both the regular configuration dialog and the game
properties dialog now use the pointer Settings::config_values to focus edits to
the correct struct.
* settings: split Settings::values into two different structs
By splitting the settings into two mutually exclusive structs, it becomes easier,
as a developer, to determine how to use the Settings structs after per-game
configurations is merged. Other benefits include only duplicating the required
settings in memory.
* settings: move use_docked_mode to Controls group
`use_docked_mode` is set in the input settings and cannot be accessed from the
system settings. Grouping it with system settings causes it to be saved with
per-game settings, which may make transferring configs more difficult later on,
especially since docked mode cannot be set from within the game properties
dialog.
* configuration: Fix the other yuzu executables and a regression
In main.cpp, we have to get the title ID before the ROM is loaded, else the
renderer will reflect only the global settings and now the user's game specific
settings.
* settings: use a template to duplicate memory for each setting
Replaces the type of each variable in the Settings::Values struct with a new
class that allows basic data reading and writing. The new struct
Settings::Setting duplicates the data in memory and can manage global overrides
per each setting.
* configuration: correct add-ons config and swap settings when apropriate
Any add-ons interaction happens directly through the global values struct.
Swapping bewteen structs now also includes copying the necessary global configs
that cannot be changed nor saved in per-game settings. General and System config
menus now update based on whether it is viewing the global or per-game settings.
* settings: restore old values struct
No longer needed with the Settings::Setting class template.
* configuration: implement hierarchical game properties dialog
This sets the apropriate global or local data in each setting.
* clang format
* clang format take 2
can the docker container save this?
* address comments and style issues
* config: read and write settings with global awareness
Adds new functions to read and write settings while keeping the global state in
focus. Files now generated per-game are much smaller since often they only need
address the global state.
* settings: restore global state when necessary
Upon closing a game or the game properties dialog, we need to restore all global
settings to the original global state so that we can properly open the
configuration dialog or boot a different game.
* configuration: guard setting values incorrectly
This disables setting values while a game is running if the setting is
overwritten by a per game setting.
* config: don't write local settings in the global config
Simple guards to prevent writing the wrong settings in the wrong files.
* configuration: add comments, assume less, and clang format
No longer assumes that a disabled UI element means the global state is turned
off, instead opting to directly answer that question. Still however assumes a
game is running if it is in that state.
* configuration: fix a logic error
Should not be negated
* restore settings' global state regardless of accept/cancel
Fixes loading a properties dialog and causing the global config dialog to show
local settings.
* fix more logic errors
Fixed the frame limit would set the global setting from the game properties
dialog. Also strengthened the Settings::Setting member variables and simplified
the logic in config reading (ReadSettingGlobal).
* fix another logic error
In my efforts to guard RestoreGlobalState, I accidentally negated the IsPowered
condition.
* configure_audio: set toggle_stretched_audio to tristate
* fixed custom rtc and rng seed overwriting the global value
* clang format
* rebased
* clang format take 4
* address my own review
Basically revert unintended changes
* settings: literal instead of casting
"No need to cast, use 1U instead"
Thanks, Morph!
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
* Revert "settings: literal instead of casting
"
This reverts commit 95e992a87c898f3e882ffdb415bb0ef9f80f613f.
* main: fix status buttons reporting wrong settings after stop emulation
* settings: Log UseDockedMode in the Controls group
This should have happened when use_docked_mode was moved over to the controls group
internally. This just reflects this in the log.
* main: load settings if the file has a title id
In other words, don't exit if the loader has trouble getting a title id.
* use a zero
* settings: initalize resolution factor with constructor instead of casting
* Revert "settings: initalize resolution factor with constructor instead of casting"
This reverts commit 54c35ecb46a29953842614620f9b7de1aa9d5dc8.
* configure_graphics: guard device selector when Vulkan is global
Prevents the user from editing the device selector if Vulkan is the global
renderer backend. Also resets the vulkan_device variable when the users
switches back-and-forth between global and Vulkan.
* address reviewer concerns
Changes function variables to const wherever they don't need to be changed. Sets Settings::Setting to final as it should not be inherited from. Sets ConfigurationShared::use_global_text to static.
Co-Authored-By: VolcaEM <volcaem@users.noreply.github.com>
* main: load per-game settings after LoadROM
This prevents `Restart Emulation` from restoring the global settings *after* the per-game settings were applied. Thanks to BSoDGamingYT for finding this bug.
* Revert "main: load per-game settings after LoadROM"
This reverts commit 9d0d48c52d2dcf3bfb1806cc8fa7d5a271a8a804.
* main: only restore global settings when necessary
Loading the per-game settings cannot happen after the ROM is loaded, so we have to specify when to restore the global state. Again thanks to BSoD for finding the bug.
* configuration_shared: address reviewer concerns except operator overrides
Dropping operator override usage in next commit.
Co-Authored-By: LC <lioncash@users.noreply.github.com>
* settings: Drop operator overrides from Setting template
Requires using GetValue and SetValue explicitly. Also reverts a change that broke title ID formatting in the game properties dialog.
* complete rebase
* configuration_shared: translate "Use global configuration"
Uses ConfigurePerGame to do so, since its usage, at least as of now, corresponds with ConfigurationShared.
* configure_per_game: address reviewer concern
As far as I understand, it prevents the program from unnecessarily copying strings.
Co-Authored-By: LC <lioncash@users.noreply.github.com>
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
Co-authored-by: VolcaEM <volcaem@users.noreply.github.com>
Co-authored-by: LC <lioncash@users.noreply.github.com>
2020-07-09 22:42:09 -04:00
bunnei
f9e748b721
Merge pull request #4248 from Morph1984/CreateManagedDisplaySeparableLayer
...
AM/ISelfController: Stub CreateManagedDisplaySeparableLayer
2020-07-09 22:09:42 -04:00
bunnei
83b1b259bd
Merge pull request #4202 from ReinUsesLisp/scoped-lock
...
core_timing,scheduler: Use std::scoped_lock when possible
2020-07-09 15:33:41 -04:00
CrazyMax
cf76769026
AM: fix GetDesiredLanguage:
...
try to get a control metadata from application update when is failed to get from the basic version.
Tested on Kirby Star Allies
2020-07-08 19:45:06 +03:00
CrazyMax
7bd3558c64
GetDisplayVersion should return a null-terminated version string.
...
also, in case of failed to get of the basic version, we will try get it from application update.
2020-07-07 02:04:24 +03:00
Morph
c0dc8f9d25
AM/ISelfController: Stub CreateManagedDisplaySeparableLayer
...
Stub this by sending 1 layer id instead of 2 as yuzu does not support multiple layers per display.
No adverse side effects have been observed.
- Used by Animal Crossing: New Horizons Update 1.3.0
2020-07-05 06:26:21 -04:00
bunnei
8a1cfcc8b7
Merge pull request #3924 from ogniK5377/GetKeyCodeMap
...
Implement GetKeyCodeMap & GetKeyCodeMap2
2020-07-02 23:03:20 -04:00
bunnei
b13fd9e65a
Merge pull request #4193 from ogniK5377/GetIndirectLayerConsumerHandle-stub
...
am: Stub GetIndirectLayerConsumerHandle
2020-07-02 21:31:20 -04:00
bunnei
af787e451b
Merge pull request #4192 from ogniK5377/acc-ListOpenContextStoredUsers-stub
...
acc: ListOpenContextStoredUsers partial stub
2020-07-02 20:36:54 -04:00
VolcaEM
3f910efb40
Rename two functions in NS
...
- Rename "GetShellEvent" to "GetShellEventHandle"
- Rename "LaunchApplicationFromHost" to "LaunchApplication"
2020-07-02 09:02:55 +02:00
VolcaEM
38b585a309
Rename GetApplicationArea2 to GetApplicationAreaSize
2020-07-02 08:58:51 +02:00
Lioncash
fb13f053bb
key_manager: Correct casing of instance()
...
Our codebase uppercases member function names.
2020-07-01 00:28:50 -04:00
David
3bb63bc0b3
Merge pull request #3967 from FearlessTobi/keys-singleton
...
crypto: Make KeyManager a singleton class
2020-07-01 14:16:26 +10:00
bunnei
c6b0353c4d
Merge pull request #4153 from ogniK5377/prepo-multibuf
...
prepo: : Don't read extra buffer from report unless passed
2020-06-30 22:37:13 -04:00
VolcaEM
86946ea13c
Remove duplicate functions
2020-06-29 04:22:38 +02:00
VolcaEM
f3630a0713
Use decimal instead of hexadecimal
...
Co-authored-by: David <25727384+ogniK5377@users.noreply.github.com>
2020-06-29 04:21:10 +02:00
VolcaEM
a0c499aef7
Fix typo
2020-06-29 04:12:36 +02:00
VolcaEM
f2eead3b5b
Clang-format
2020-06-29 04:09:38 +02:00
VolcaEM
6a0010d0c6
service: Update function tables
2020-06-29 04:01:34 +02:00
ReinUsesLisp
8562b516c0
core_timing,scheduler: Use std::scoped_lock when possible
...
Simplifies the cognitive load of procedures using locks and makes locks
safe against exceptions.
2020-06-28 21:42:57 -03:00
bunnei
b05795d704
Merge pull request #3955 from FernandoS27/prometheus-2b
...
Remake Kernel Scheduling, CPU Management & Boot Management (Prometheus)
2020-06-28 12:37:50 -04:00
David Marcec
db824b59c8
ldr: Cleanup NRO & NRR structs
2020-06-28 20:54:37 +10:00
David
d67c7d9a82
Merge pull request #4026 from VolcaEM/ldr
...
ldr: Update NRR/NRO structs
2020-06-28 20:46:42 +10:00
David
4a5f6c03b0
Merge pull request #4184 from VolcaEM/patch-9
...
grc: Update function table
2020-06-28 18:49:15 +10:00
David
d3a306b7a6
Merge pull request #4185 from VolcaEM/patch-10
...
lbl: Update function table
2020-06-28 18:48:54 +10:00
David
477979dd43
Merge pull request #4186 from VolcaEM/patch-11
...
ldn: Update function table
2020-06-28 18:48:28 +10:00
David
b478b61dcf
Merge pull request #4187 from VolcaEM/patch-12
...
mig: Update function table
2020-06-28 18:48:15 +10:00
David
00aa9f6a53
Merge pull request #4188 from VolcaEM/patch-13
...
mm: Update function table
2020-06-28 18:47:55 +10:00
David
26e243d2d7
Merge pull request #4189 from VolcaEM/patch-14
...
ncm: Update function table
2020-06-28 18:47:27 +10:00
David
bd590895cf
Merge pull request #4190 from VolcaEM/patch-15
...
nfc: Update function table
2020-06-28 18:47:07 +10:00
David Marcec
dcf345febe
am: Stub GetIndirectLayerConsumerHandle
...
Needed by Monster Hunter Generations Ultimate
2020-06-28 16:51:28 +10:00
David Marcec
f0baf2abf2
acc: ListOpenContextStoredUsers partial stub
...
Needed by Baldur's Gate 1/2
2020-06-28 16:44:36 +10:00
Fernando Sahmkow
2f8947583f
Core/Common: Address Feedback.
2020-06-27 18:20:06 -04:00
Fernando Sahmkow
e486c66850
NvFlinger: Clang Format.
2020-06-27 11:36:30 -04:00
Fernando Sahmkow
4105f38022
SVC: Implement 32-bits wrappers and update Dynarmic.
2020-06-27 11:36:27 -04:00
Fernando Sahmkow
ce350e7ce0
SVC: Add GetCurrentProcessorNumber32, CreateTransferMemory32, SetMemoryAttribute32
2020-06-27 11:36:27 -04:00
Fernando Sahmkow
22ceaca2f4
SVC: Add GetThreadPriority32 & SetThreadPriority32
2020-06-27 11:36:25 -04:00
Fernando Sahmkow
7fd7d05838
Common/Kernel: Corrections and small bug fixing.
2020-06-27 11:36:21 -04:00
Fernando Sahmkow
272a87127a
Services/NvFlinger: Do vSync in a sepparate thread on Multicore.
2020-06-27 11:36:20 -04:00
Fernando Sahmkow
d240143588
Kernel: Correct Host Context on Threads and Scheduler.
2020-06-27 11:36:15 -04:00
Fernando Sahmkow
467d43570e
Clang Format.
2020-06-27 11:36:14 -04:00
Fernando Sahmkow
48fa3b7a0f
General: Cleanup legacy code.
2020-06-27 11:36:05 -04:00
Fernando Sahmkow
c8bf47dcfb
Kernel/svcBreak: Implement CacheInvalidation for Singlecore and correct svcBreak.
2020-06-27 11:36:04 -04:00
Fernando Sahmkow
19165cd859
HLE_IPC: Correct HLE Event behavior on timeout.
2020-06-27 11:36:03 -04:00
Fernando Sahmkow
7e2ce2f7f4
SingleCore: Improve Cycle timing Behavior and replace mutex in global scheduler for spinlock.
2020-06-27 11:36:02 -04:00
Fernando Sahmkow
a7ecd9e19c
FrameLimiting: Enable frame limiting for single core.
2020-06-27 11:36:01 -04:00
Fernando Sahmkow
f5e32935ca
SingleCore: Use Cycle Timing instead of Host Timing.
2020-06-27 11:36:01 -04:00
Fernando Sahmkow
9bde28d7b1
Scheduler: Correct Reload/Unload
2020-06-27 11:35:59 -04:00
Fernando Sahmkow
5974e3ea33
Thread: Release the ARM Interface on exitting.
2020-06-27 11:35:58 -04:00
Fernando Sahmkow
1567824d2d
General: Move ARM_Interface into Threads.
2020-06-27 11:35:58 -04:00
Fernando Sahmkow
1b82ccec22
Core: Refactor ARM Interface.
2020-06-27 11:35:56 -04:00
Fernando Sahmkow
87c49aa7be
SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface.
2020-06-27 11:35:53 -04:00
Fernando Sahmkow
f2ade343e2
SingleCore: Move Host Timing from a sepparate thread to main cpu thread.
2020-06-27 11:35:52 -04:00
Fernando Sahmkow
25565dffd5
ARM: Addapt to new Exclusive Monitor Interface.
2020-06-27 11:35:50 -04:00
Fernando Sahmkow
db68fba4a6
Scheduler: Correct yielding interaction with SetThreadActivity.
2020-06-27 11:35:49 -04:00
Fernando Sahmkow
7020d498c5
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
2020-06-27 11:35:48 -04:00
Fernando Sahmkow
e6f8bde74b
General: Fix Stop function
2020-06-27 11:35:47 -04:00
Fernando Sahmkow
f370de84b1
Kernel: Rewind on SVC change.
2020-06-27 11:35:46 -04:00
Fernando Sahmkow
d494b074e8
Kernel: Preempt Single core on redudant yields.
2020-06-27 11:35:45 -04:00
Fernando Sahmkow
a439cdf22e
CPU_Manager: Unload/Reload threads on preemption on SingleCore
2020-06-27 11:35:43 -04:00
Fernando Sahmkow
8a78fc2580
Synchronization: Correct wide Assertion.
2020-06-27 11:35:43 -04:00
Fernando Sahmkow
ab9aae28bf
General: Initial Setup for Single Core.
2020-06-27 11:35:42 -04:00
Fernando Sahmkow
391f5f360d
Scheduler: Set last running time on thread.
2020-06-27 11:35:41 -04:00
Fernando Sahmkow
9e9c287f8b
Kernel: Corrections to TimeManager, Scheduler and Mutex.
2020-06-27 11:35:40 -04:00
Fernando Sahmkow
6515c6e8c6
Kernel: Fixes, corrections and asserts to scheduler and different svcs.
2020-06-27 11:35:40 -04:00
Fernando Sahmkow
4217e58a10
Scheduler: Correct yields.
2020-06-27 11:35:39 -04:00
Fernando Sahmkow
445b4342b3
Mutex: Revert workaround due to poor exclusive memory.
2020-06-27 11:35:38 -04:00
Fernando Sahmkow
cd1c38be8d
ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.
2020-06-27 11:35:37 -04:00
Fernando Sahmkow
535c542d84
SVC: WaitSynchronization add Termination Pending Result.
2020-06-27 11:35:36 -04:00
Fernando Sahmkow
725bac1404
Scheduler: Remove arm_interface lock and a few corrections.
2020-06-27 11:35:35 -04:00
Fernando Sahmkow
83c7ba1ef7
SVC: Correct SetThreadActivity.
2020-06-27 11:35:33 -04:00
Fernando Sahmkow
a66c61ca2d
SCC: Small corrections to CancelSynchronization
2020-06-27 11:35:33 -04:00
Fernando Sahmkow
44cb9997b3
Scheduler: Correct locking for hle threads.
2020-06-27 11:35:32 -04:00
Fernando Sahmkow
6ed28e15fa
Scheduler: Fix HLE Threads on guard
2020-06-27 11:35:31 -04:00
Fernando Sahmkow
3de33348e4
Scheduler: Protect on closed threads.
2020-06-27 11:35:31 -04:00
Fernando Sahmkow
19847d4d42
Scheduler: Correct assert.
2020-06-27 11:35:30 -04:00
Fernando Sahmkow
a33fbaddec
Core: Correct rebase.
2020-06-27 11:35:29 -04:00
Fernando Sahmkow
1c672128c4
Scheduler: Release old thread fiber before trying to switch to the next thread fiber.
2020-06-27 11:35:28 -04:00
Fernando Sahmkow
c43e559734
NVDRV: Remove frame limiting as Host Timing already takes care.
2020-06-27 11:35:28 -04:00
Fernando Sahmkow
a6bce296ad
Mutex: Correct Result writting to clear exclusivity.
2020-06-27 11:35:26 -04:00
Fernando Sahmkow
e4b175ade2
SVC: Correct svcWaitForAddress and svcSignalToAddress.
2020-06-27 11:35:25 -04:00
Fernando Sahmkow
1e987dbe8d
Scheduler: Correct Select Threads Step 2.
2020-06-27 11:35:24 -04:00
Fernando Sahmkow
07993ac8c8
Kernel: Corrections to Scheduling.
2020-06-27 11:35:23 -04:00
Fernando Sahmkow
b4dc01f16a
Kernel: Correct Signal on Thread Death and Setup Sync Objects on Thread for Debugging
2020-06-27 11:35:23 -04:00
Fernando Sahmkow
75e10578f1
Core: Correct HLE Event Callbacks and other issues.
2020-06-27 11:35:22 -04:00
Fernando Sahmkow
de5b521c09
Process: Protect TLS region and Modules.
2020-06-27 11:35:21 -04:00
Fernando Sahmkow
2a8837ff51
General: Add Asserts
2020-06-27 11:35:21 -04:00
Fernando Sahmkow
04e0f8776c
General: Add better safety for JIT use.
2020-06-27 11:35:20 -04:00
Fernando Sahmkow
bd36eaf15d
SVC: Correct races on physical core switching.
2020-06-27 11:35:19 -04:00
Fernando Sahmkow
cc3aa95926
NVFlinger: Lock race condition between CPU, Host Timing, VSync.
2020-06-27 11:35:18 -04:00
Fernando Sahmkow
3902067008
SVC: Add locks to the memory management.
2020-06-27 11:35:18 -04:00
Fernando Sahmkow
d4ebb510a0
SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey.
2020-06-27 11:35:17 -04:00
Fernando Sahmkow
5b6a67f849
SVC: Cleanup old methods.
2020-06-27 11:35:16 -04:00
Fernando Sahmkow
3d9fbb8226
CPU_Manager: Reconfigre guest threads for dynamrmic downsides
2020-06-27 11:35:15 -04:00
Fernando Sahmkow
15a79eb0d7
SVC: Correct SendSyncRequest.
2020-06-27 11:35:14 -04:00
Fernando Sahmkow
203e706302
SVC: Correct ArbitrateUnlock
2020-06-27 11:35:14 -04:00
Fernando Sahmkow
3b5b950c89
SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLock
2020-06-27 11:35:13 -04:00
Fernando Sahmkow
ef4afa9760
SVC: Remove global HLE Lock.
2020-06-27 11:35:13 -04:00
Fernando Sahmkow
589f9cf108
SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumber
2020-06-27 11:35:12 -04:00
Fernando Sahmkow
49ba563995
SVC: Correct CreateThread, StartThread, ExitThread, SleepThread.
2020-06-27 11:35:11 -04:00
Fernando Sahmkow
e31425df38
General: Recover Prometheus project from harddrive failure
...
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and
Suspended State, Recreates the bootmanager, Initializes Multicore
system.
2020-06-27 11:35:06 -04:00
VolcaEM
23515e0ccc
nfc: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/NFC_services
2020-06-27 13:09:36 +02:00
VolcaEM
c56414b80d
ncm: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/NCM_services
ILocationResolver's 16, 17, 18 and 19 have unofficial names
2020-06-27 13:05:22 +02:00
VolcaEM
b829643946
mm: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/Display_services
2020-06-27 12:59:01 +02:00
VolcaEM
5219424226
mig: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/Migration_services
2020-06-27 12:53:59 +02:00
VolcaEM
b9be484a51
ldn: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/LDN_services
2020-06-27 12:50:56 +02:00
VolcaEM
a8d17adb7c
Oops (fix typo)
2020-06-27 12:45:42 +02:00
VolcaEM
73b035d2e2
lbl: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/Backlight_services
2020-06-27 12:43:33 +02:00
VolcaEM
64fa9b9f57
grc: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/GRC_services
2020-06-27 12:41:21 +02:00
VolcaEM
af88767508
friend: Update function table
2020-06-27 12:39:10 +02:00
bunnei
6f16f54f10
Merge pull request #4158 from Morph1984/caps
...
caps: Use enum classes and check struct sizes on compile time
2020-06-27 00:09:32 -04:00
bunnei
a91f92a89d
Merge pull request #4152 from ogniK5377/ipc-err
...
Mark invalid IPC buffers as ASSERT_OR_EXECUTE_MSG
2020-06-26 23:37:19 -04:00
bunnei
705cccb1e4
Merge pull request #4154 from ogniK5377/swkbd-nullptr
...
Prevent nullptr dereference on swkbd error case
2020-06-26 23:25:04 -04:00
David
b32b7c6e74
Merge pull request #4178 from VolcaEM/patch-6
...
es: Update function table
2020-06-27 13:05:12 +10:00
VolcaEM
2d82b7f1a1
Use better names for "Unknown"s
2020-06-27 02:48:29 +02:00
VolcaEM
bc51a9365b
Update function names
2020-06-27 02:43:22 +02:00
David Marcec
0b23ce6ef2
btm: Give better names for unknown functions
2020-06-27 10:42:46 +10:00
VolcaEM
032b7d490d
btdrv: Update function table ( #4174 )
...
* btdrv: Update function table
2020-06-26 20:34:29 -04:00
VolcaEM
6e14edbcc2
bpc: Update function tables ( #4173 )
...
* bpc: Update function tables
This was based on Switchbrew page: https://switchbrew.org/wiki/PCV_services
2020-06-26 20:33:55 -04:00
VolcaEM
e6fee39ae7
bcat: Update function tables and add missing classes ( #4172 )
...
* bcat: Update function tables and add missing classes
2020-06-26 20:33:25 -04:00
VolcaEM
ca25a3845e
am: Update function tables and add missing classes ( #4169 )
...
* am: Update function tables and add missing classes
* Remove comments (1/5)
* Remove comments (2/5)
* Remove comments (3/5)
* Remove comments (4/5)
* Remove comments (5/5)
* Remove unused classes (1/2)
* Remove unused classes (2/2)
2020-06-26 20:32:26 -04:00
VolcaEM
b5d54619cc
aoc: Update function table ( #4170 )
...
* aoc: Update function table
* Remove comments
2020-06-26 20:31:44 -04:00
LC
98bbab8030
Merge pull request #4177 from VolcaEM/patch-5
...
btm: Update function tables
2020-06-26 20:30:59 -04:00
VolcaEM
0f4a611129
eupld: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/Error_Upload_services
2020-06-27 02:25:04 +02:00
VolcaEM
3828aa4927
es: Update function table
...
This was based on Switchbrew page: https://switchbrew.org/wiki/ETicket_services
2020-06-27 02:17:51 +02:00
VolcaEM
d3e9b45ce0
btm: Update function tables
...
This was based on Switchbrew page: https://switchbrew.org/wiki/BTM_services
"No comment" edition
2020-06-27 01:57:48 +02:00
Morph
72f14ae21f
caps_u: Fix GetAlbumContentsFileListForApplication stub
2020-06-26 08:35:21 -04:00
Morph
3017be7855
caps: Use enum classes and check struct sizes on compile time
2020-06-26 08:35:21 -04:00
Morph
02a33feef4
caps: Update copyright headers
...
Updated to "yuzu Emulator Project"
2020-06-26 08:35:21 -04:00
bunnei
c4fe83a7bc
Merge pull request #4159 from ogniK5377/mem-manager-dumb-assert
...
memory_manager: Remove useless assertion
2020-06-25 22:53:13 -04:00
David
d11baf8bf8
Merge pull request #4141 from Morph1984/SevenSixAxisSensor
...
hid: Stub a series of "SevenSixAxisSensor" service commands
2020-06-25 19:37:39 +10:00
David Marcec
38868e5750
memory_manager: Remove useless assertion
...
num_pages is an std::size_t. It will always be >= 0
2020-06-25 16:35:58 +10:00
Morph
2c9308954c
hid: Stub a series of "SevenSixAxisSensor" service commands
...
- Used by Captain Toad: Treasure Tracker Update 1.3.0
While we're at it, fix the input parameters for SetIsPalmaAllConnectable and SetPalmaBoostMode
2020-06-24 11:57:39 -04:00
David Marcec
510838759f
Prevent nullptr dereference on swkbd error case
2020-06-25 00:25:15 +10:00
David Marcec
2f0b322e72
prepo: : Don't read extra buffer from report unless passed
...
Prepo doesn't always pass a secondary buffer, we assume it always does which leads to a bad read.
2020-06-24 23:01:00 +10:00
David Marcec
82ecdd0104
Mark invalid IPC buffers as ASSERT_OR_EXECUTE_MSG
...
Previously if applications would send faulty buffers(example homebrew) it would lead to us returning uninitalized data. Switching from ASSERT_MSG to ASSERT_OR_EXECUTE_MSG allows us to have a fail safe to prevent crashes but also continue execution without introducing undefined behavior
2020-06-24 22:50:27 +10:00
David Marcec
380fbd8cb7
Move GetKeyCodeMapImpl to an anonymous namespace
2020-06-24 13:05:08 +10:00
David Marcec
e3d2b646e0
Fixed logging output
2020-06-24 12:07:41 +10:00
David Marcec
5226610a15
Implement GetKeyCodeMap & GetKeyCodeMap2
...
Closes #3919
2020-06-24 12:05:52 +10:00
bunnei
3bab5a5e4a
Merge pull request #4138 from Morph1984/GyroscopeZeroDriftMode
...
hid: Implement Get/ResetGyroscopeZeroDriftMode
2020-06-23 21:56:16 -04:00
bunnei
1d1489da80
Merge pull request #4128 from lioncash/move2
...
software_keyboard: Eliminate trivial redundant copies
2020-06-23 18:24:15 -04:00
Morph
45dac6bc5c
lm: Silence no return value warning
2020-06-22 22:55:32 -04:00
VolcaEM
e193aa3f53
account: Update function tables and add missing classes ( #4145 )
...
* account: Update function tables and add missing classes
* clang-format
* Add missing "public"
* Add missing public again
* Add missing final
2020-06-22 16:03:26 -04:00
Morph
0235915baa
hid: Implement Get/ResetGyroscopeZeroDriftMode
...
- Used by Captain Toad Treasure Tracker
2020-06-21 16:25:41 -04:00
Lioncash
a5ed0c3df7
software_keyboard: Eliminate trivial redundant copies
...
We can just make use of moves here to get rid of two redundant copies
2020-06-20 01:06:10 -04:00
MerryMage
b19fe55f84
memory_manager: Explicitly specifcy std::min<size_t>
2020-06-18 15:47:44 +01:00
VolcaEM
684dfbf209
Move SHA256Hash to its original position
...
It's not needed to have it in its previous position anymore
2020-06-18 15:45:47 +02:00
VolcaEM
bd9495c9ab
Remove unnecessary pragmas
2020-06-16 20:28:44 +02:00
VolcaEM
c0d6162050
Revert IsValidNRO refactor but make it more readable
2020-06-16 20:24:58 +02:00
VolcaEM
4b71bf654d
Update assert string
2020-06-16 15:57:02 +02:00
bunnei
55ebf68636
Merge pull request #4070 from ogniK5377/GetTPCMasks-fix
...
nvdrv: Fix GetTPCMasks for ioctl3
2020-06-14 20:12:45 -04:00
VolcaEM
39213b1c59
Clang-format again
2020-06-14 19:41:28 +02:00
VolcaEM
198b0fa790
Use consistent variable names
2020-06-14 19:37:44 +02:00
VolcaEM
1520d7865d
Clang-format
2020-06-14 19:34:58 +02:00
VolcaEM
761d206049
Make assert strings consistent
2020-06-14 19:30:08 +02:00
VolcaEM
151a3fe7b3
Attempt to fix crashes in SSBU and refactor IsValidNRO
2020-06-14 19:28:39 +02:00
bunnei
89d11f2268
Merge pull request #4069 from ogniK5377/total-phys-mem
...
kernel: Account for system resource size for memory usage
2020-06-14 00:44:34 -04:00
bunnei
e1911e5c8b
Merge pull request #4010 from ogniK5377/reserve-always-break
...
kernel: ResourceLimit::Reserve remove useless while loop
2020-06-12 22:30:19 -04:00
David Marcec
b15cbf9bcf
nvdrv: Fix GetTPCMasks for ioctl3
...
Fixes animal crossing svcBreak on launch
2020-06-10 18:36:42 +10:00
David Marcec
74ff1db758
kernel: Account for system resource size for memory usage
...
GetTotalPhysicalMemoryAvailableWithoutSystemResource & GetTotalPhysicalMemoryUsedWithoutSystemResource seem to subtract the resource size from the usage.
2020-06-10 14:49:00 +10:00
bunnei
1adf640d37
service: nvhost_vic: Ignore Submit commands.
2020-06-04 22:32:28 -04:00
Zach Hilman
34635a42c0
nvdrv: Stub nvdec/vic ioctls to bypass nvdec movies
2020-06-04 22:32:28 -04:00
David Marcec
c0d2e3212f
Downgrade "handle not signaled" error to trace
...
clogs logs quite a bit
2020-06-04 22:27:15 +10:00
VolcaEM
dfd1badc12
Address review comments
2020-06-02 17:54:10 +02:00
VolcaEM
8c84a7e7ec
Clang-format
2020-06-01 19:42:54 +02:00
VolcaEM
4d10d3113f
hid: Stub GetXpadIDs
...
Allows Minecraft: Nintendo Switch Edition (a.k.a. old Minecraft) to boot and go ingame
2020-06-01 19:38:44 +02:00
VolcaEM
a087b3365a
Add comment to nrr_kind
...
According to Atmosphére (c7026b9094/libraries/libstratosphere/include/stratosphere/ro/ro_types.hpp
), nrr_kind (Atmosphére calls it "type") is 7.0.0+
2020-05-31 19:12:09 +02:00
VolcaEM
2b1cc232bc
ldr: Update NRR/NRO structs
...
This was based on Switchbrew pages:
https://switchbrew.org/wiki/NRR
https://switchbrew.org/wiki/NRO
2020-05-31 18:49:51 +02:00
David Marcec
43bf860b22
kernel: ResourceLimit::Reserve remove useless while loop
...
Timeout is a u64, it will always be >= 0
2020-05-29 13:48:01 +10:00
VolcaEM
cb75ccc1f7
clang-format
2020-05-21 10:43:55 +02:00
VolcaEM
235805edf3
nifm: correct assert in CreateTemporaryNetworkProfile
...
This has been wrong since 0432af5ad1
I haven't found a game that called this function (and I haven't tried this on a real Switch), and because of this I haven't been able to check if the number in assert OR the string in the assert is wrong, but one of the two is wrong:
NetworkProfileData is 0x18E, while SfNetworkProfileData is 0x17C, according to Switchbrew
Switchbrew doesn't officially say that NetworkProfileData's size is 0x18E but it's possible to calculate its size since Switchbrew provides the size and the offset of all the components of NetworkProfileData (which isn't currently implemented in yuzu, alongside SfNetworkProfileData)
NetworkProfileData documentation: https://switchbrew.org/wiki/Network_Interface_services#NetworkProfileData
SfNetworkProfileData documentation: https://switchbrew.org/wiki/Network_Interface_services#SfNetworkProfileData
Since I trust ogniK's work on reversing NIFM, I'd assume this was just a typo in the string
2020-05-21 10:23:53 +02:00
FearlessTobi
9f82a9a244
crypto: Make KeyManager a singleton class
...
Previously, we were reading the keys everytime a KeyManager object was created, causing yuzu to reread the keys file multiple hundreds of times when loading the game list.
With this change, it is only loaded once.
On my system, this decreased game list loading times by a factor of 20.
2020-05-20 21:28:16 +02:00
bunnei
cf4ee279c6
Merge pull request #3926 from ogniK5377/keyboard-states
...
hid: Clear keyboard states & fix logic issue
2020-05-19 15:55:14 -04:00
bunnei
65010607b7
Merge pull request #3665 from bunnei/device-save
...
FS: Improve emulation of device saves
2020-05-16 12:39:58 -04:00
David Marcec
6f0360690b
nv_flinger: Use enum for pixel format instead of u32
2020-05-16 13:47:55 +10:00
bunnei
bba54e1880
time_zone: Use std::chrono::seconds for strong typing.
2020-05-12 18:44:07 -04:00
David Marcec
a79f060ea2
hid: Clear keyboard states & fix logic issue
...
Previously we never cleared the states of the entries and the key would stay held down, also looping over the key bytes for each key lead to setting every bit for the key state instead of the key we wanted
2020-05-12 12:40:50 +10:00
bunnei
3c8cd62b0d
hle: service: time_zone_manager: Use current time zone setting.
2020-05-11 17:55:25 -04:00
bunnei
47b97b9577
service: fsp_srv: Stub implementation of OpenMultiCommitManager.
2020-05-11 12:54:30 -04:00
David Marcec
ecc8ccc9d3
Stub SendKeyboardLockKeyEvent
...
Needed for Puchikon 4 SmileBASIC 1.0.0
2020-05-12 01:01:50 +10:00
James Rowe
bc30a591ba
Replace externals with Conan ( #3735 )
...
* Remove git submodules that will be loaded through conan
* Move custom Find modules to their own folder
* Use conan for downloading missing external dependencies
* CI: Change the yuzu source folder user to the user that the containers run on
* Attempt to remove dirty mingw build hack
* Install conan on the msvc build
* Only set release build type when using not using multi config generator
* Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries
* Add workaround for submodules that use legacy CMAKE variables
* Re-add USE_BUNDLED_QT on the msvc build bot
2020-05-08 17:09:29 -04:00
bunnei
1121960f0e
Merge pull request #3879 from lioncash/global2
...
hle_ipc: Eliminate core memory globals
2020-05-07 19:13:34 -04:00
bunnei
88141bb2d4
Merge pull request #3881 from lioncash/mem-warning
...
kernel/memory: Resolve several compiler warnings
2020-05-05 15:41:18 -04:00
bunnei
929acd4d1e
Merge pull request #3880 from lioncash/encoding
...
kernel/memory: Amend potential encoding warnings
2020-05-04 18:50:29 -04:00
bunnei
500e9c5969
Merge pull request #3843 from ogniK5377/GetPopFromGeneralChannelEvent
...
am: IHomeMenuFunctions:GetPopFromGeneralChannelEvent
2020-05-04 16:20:11 -04:00
bunnei
29fce1a187
Merge pull request #3822 from ogniK5377/GetAccountId
...
acc: Return a unique value per account for GetAccountId
2020-05-03 23:15:03 -04:00
Lioncash
4620580245
kernel/memory: Remove #pragma once within cpp file
...
This isn't necessary in a cpp file and will cause warnings on clang.
2020-05-03 13:42:07 -04:00
Lioncash
1ecaa86a52
kernel/memory: Remove unused includes
...
Prevents header churn and needing to recompile these files if these
headers are ever changed in the future.
2020-05-03 13:41:18 -04:00
Lioncash
a2e61e6542
kernel/memory: Remove unused variables in memory_block_manager
...
Prevents unused variable warnings.
2020-05-03 13:36:20 -04:00
Lioncash
26aee55aef
kernel/memory: Make use of std::array consistently in address_space_info
...
This allows tuning standard library implementations to enable or disable
range checks at runtime, which is nicer for debugging.
2020-05-03 13:34:24 -04:00
Lioncash
dfa582169b
kernel/memory: Resolve -Wshadow warnings
...
Prevents variable name clashing.
2020-05-03 13:29:42 -04:00
Lioncash
93c083aef1
kernel/memory: Amend potential encoding warnings
...
While èis generally representable in some language encodings, in some
it isn't and will result in compilation warnings occurring. To remain
friendly with other language's codepages on Windows, we normalize it to
an ASCII e.
2020-05-03 13:01:03 -04:00
Lioncash
0ec07e8763
hle_ipc: Eliminate core memory globals
...
We can just pass the required instances into the constructor of the
request, eliminating all usages of the global system accessor.
2020-05-03 12:57:40 -04:00
bunnei
8db4feb5b4
Merge pull request #3871 from lioncash/semi
...
readable_event: Remove unnecessary semicolon in Signal()
2020-05-02 23:38:36 -04:00
bunnei
7459215933
Merge pull request #3824 from ogniK5377/GetDisplayVersion
...
am: Properly implement GetDisplayVersion
2020-05-02 23:35:38 -04:00
bunnei
c49f51eaf1
Update src/core/hle/service/am/am.cpp
...
Co-authored-by: Mat M. <mathew1800@gmail.com>
2020-05-02 23:35:31 -04:00
Lioncash
aabf5b2059
readable_event: Remove unnecessary semicolon in Signal()
...
Resolves a -Wextra-semi warning.
While we're at it, we can invert the branch to form a guard clause,
unindenting all of the contained code.
2020-05-02 14:07:31 -04:00
bunnei
30bd77c6e7
Merge pull request #3811 from ogniK5377/audin-init
...
audin:u: ListAudioIns, OpenAudioIn, ListAudioInsAuto, OpenAudioInAuto, ListAudioInsAutoFiltered, OpenAudioInProtocolSpecified
2020-05-02 13:11:52 -04:00
bunnei
5ddcc1b2f5
Merge pull request #3819 from ogniK5377/err-log2
...
kernel: Don't fail silently
2020-05-02 02:51:50 -04:00
bunnei
1bcdf5e61c
Merge pull request #3833 from qwell/caps_su-32-stub
...
Add stub for caps:su SetShimLibraryVersion
2020-05-01 23:34:05 -04:00
bunnei
fd005585f6
Merge pull request #3821 from ogniK5377/InitializeApplicationInfo-fix
...
acc: Fix InitializeApplicationInfo
2020-05-01 22:06:05 -04:00
bunnei
224cf3075c
Merge pull request #3812 from ogniK5377/lisst-qualified-users
...
account: ListQualifiedUsers
2020-05-01 22:05:37 -04:00
David Marcec
d5a69ecb68
nvdrv: Fix GetGpuTime stack corruption
...
IoctlGetGpuTime should be 16 bytes, not 8.
2020-05-02 00:14:37 +10:00
David Marcec
8850d85341
am: IHomeMenuFunctions:GetPopFromGeneralChannelEvent
...
QLaunch 1.0.0
2020-05-01 11:20:43 +10:00
Jason Parker
4b16e93f1a
caps:su Stub out SetShimLibraryVersion
...
Used by Animal Crossing: New Horizons when trying to take a picture.
2020-04-30 15:16:53 -04:00
Mat M
f88d2f5739
Merge pull request #3823 from ogniK5377/setvrmode
...
am: IsVrModeEnabled & SetVrModeEnabled fixes
2020-04-30 13:39:16 -04:00
Mat M
ecf1f2e054
Merge pull request #3830 from ogniK5377/GetFriendInvitationStorageChannelEvent
...
am: GetFriendInvitationStorageChannelEvent
2020-04-30 13:38:35 -04:00
Mat M
0a0b676286
Merge pull request #3835 from ogniK5377/GetFreeSpaceSize-GetTotalSpaceSize
...
fs-srv: GetFreeSpaceSize & GetTotalSpaceSize
2020-04-30 13:37:43 -04:00
Mat M
07552d4615
Merge pull request #3832 from ogniK5377/nim-eca-CreateServerInterface
...
nim: CreateServerInterface, CreateAccessorInterface, CreateAsyncInterface
2020-04-30 13:36:04 -04:00
Mat M
e6f4251988
Merge pull request #3831 from ogniK5377/caps-su-names
...
caps: Add missing service names to caps:su
2020-04-30 13:32:53 -04:00
David Marcec
78e5f162e2
fs-srv: GetFreeSpaceSize & GetTotalSpaceSize
...
Closes #3533
Turns out the functions were already implemented but just never added
2020-04-30 23:59:57 +10:00
David Marcec
55e423c8b6
nim: CreateServerInterface, CreateAccessorInterface, CreateAsyncInterface
...
Closes #3026
2020-04-30 23:10:20 +10:00
David Marcec
738140fdd8
caps: Add missing service names to caps:su
...
SetShimLibraryVersion, SaveScreenShotEx1 & SaveScreenShotEx2 were missing
2020-04-30 22:51:06 +10:00
David Marcec
10804d6d0e
am: GetFriendInvitationStorageChannelEvent
...
Closes #3829
2020-04-30 22:37:26 +10:00
David Marcec
973c40b63e
psm: Mark as debug instead of warning
...
No point to emulate battery life. However options are broken out if we ever want to add a setting for it
2020-04-29 22:39:49 +10:00
David Marcec
9acd336422
am: Properly implement GetDisplayVersion
...
Properly implement IApplicationFunctions::GetDisplayVersion
2020-04-29 22:13:56 +10:00
David Marcec
8bddc750e2
am: IsVrModeEnabled & SetVrModeEnabled fixes
...
Return the proper state of vr mode for IsVrModeEnabled
We should not return an error for SetVrModeEnabled. When VR Mode is turned on, it signals to lbl to turn vr mode on, not return an error code
2020-04-29 21:48:58 +10:00
David Marcec
1417849a2b
acc: Return a unique value per account for GetAccountId
2020-04-29 21:09:53 +10:00
David Marcec
1fbc341aba
acc: Fix InitializeApplicationInfo
...
We're not suppose to pop a u64, should just read the sent pid and check that
2020-04-29 20:49:35 +10:00
David Marcec
b6538c3e7c
kernel: Don't fail silently
2020-04-29 14:53:53 +10:00
Mat M
c3c3e07263
Merge pull request #3818 from ogniK5377/err-log
...
Don't fail silently for vi, sm, set and ns services
2020-04-28 21:41:13 -04:00
Mat M
5cb531b6cf
Merge pull request #3783 from lioncash/pointer
...
physical_core: Make use of std::make_unique instead of std::make_shared in ctor
2020-04-28 21:38:02 -04:00
David Marcec
b4dbf1b9c7
Don't fail silently for vi, sm, set and ns services
2020-04-29 11:15:21 +10:00
David Marcec
2261cf24af
kernel: Bad GetInfo ids should not be marked as stubs
...
As we currently match hardware and don't return a successful result, these should be marked as errors instead of warnings and as stubs.
2020-04-29 01:17:59 +10:00
David Marcec
fdbeb90bd0
Updated comment to reflect ListQualifiedUsers better
2020-04-29 01:13:03 +10:00
David Marcec
0f6064e5c9
style: Change AMs & Glues error codes to be dec instead of hex
...
Consistency for the rest of the error codes in the codebase
2020-04-29 00:49:49 +10:00
David Marcec
1276e425d2
marked stubs
2020-04-29 00:43:05 +10:00
David Marcec
a17813c4f4
account: ListQualifiedUsers
...
Closes #2844
2020-04-29 00:37:47 +10:00
David Marcec
fb51a655b8
Audin:u ListAudioIns, OpenAudioIn, ListAudioInsAuto, OpenAudioInAuto, ListAudioInsAutoFiltered, OpenAudioInProtocolSpecified
...
Closes #2874
2020-04-29 00:19:07 +10:00
bunnei
4dca2298f9
Merge pull request #3785 from ogniK5377/set-buffer-count-unit
...
vi: Don't let uninitialized data pass as a response for SetBufferCount
2020-04-27 17:10:28 -04:00
Mat M
e8e04a4b80
Merge pull request #3797 from slashiee/hid-stub
...
services: hid: Stub StopSevenSixAxisSensor.
2020-04-27 15:37:08 -04:00
bunnei
11e1629d89
Merge pull request #3744 from lioncash/table2
...
service: Update function tables
2020-04-26 04:15:47 -04:00
M&M
c1ffaa8b29
services: hid: Stub StopSevenSixAxisSensor.
...
- Used by The Legend of Zelda: Breath of the Wild v1.6.0
2020-04-25 15:38:56 -07:00
bunnei
d1e7cf3bdc
Merge pull request #3780 from lioncash/process
...
svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemory
2020-04-24 23:22:26 -04:00
David Marcec
03a6f3b0f4
vi: Don't let uninitialized data pass as a response for SetBufferCount
...
Currently SetBufferCount doesn't write to the out buffer which then contains uninitialized data. This leads to non-zero data which leads to responding with different error codes
2020-04-24 17:24:58 +10:00
Lioncash
cc84b48ce5
physical_core: Make use of std::make_unique instead of std::make_shared in ctor
...
We can also allow unicorn to be constructed in 32-bit mode or 64-bit
mode to satisfy the need for both interpreter instances.
Allows this code to compile successfully of non x86-64 architectures.
2020-04-24 00:20:58 -04:00
Rodrigo Locatti
f24c67877b
Merge pull request #3777 from lioncash/warn
...
page_table: Remove unused captures
2020-04-23 21:47:54 -03:00
Rodrigo Locatti
db3dcb2f64
Merge pull request #3778 from lioncash/unused-var
...
svc: Remove unused variable
2020-04-23 21:47:24 -03:00
Lioncash
ce7c02735e
shared_memory: Amend doxygen reference
...
Amends the parameter to match the documentation reference.
Resolves a -Wdocumentation warning with clang.
2020-04-23 18:42:14 -04:00
Lioncash
4730347f8e
svc: Re-add MapProcessCodeMemory/UnmapProcessCodeMemory
...
These were lost in the re-implementation of the virtual memory manager.
2020-04-23 18:12:04 -04:00
Lioncash
bed4865981
svc: Remove unused variable
...
Since the VMM refactor, this is no longer used or needed.
2020-04-23 17:53:26 -04:00
Lioncash
f77b5dfe81
page_table: Remove unused captures
...
Any time the lambda function is called, the permission being used in the
capture would be passed in as an argument to the lambda, so the capture
is unnecessary.
2020-04-23 17:33:08 -04:00
bunnei
ff0c49e1ce
kernel: memory: Improve implementation of device shared memory. ( #3707 )
...
* kernel: memory: Improve implementation of device shared memory.
* fixup! kernel: memory: Improve implementation of device shared memory.
* fixup! kernel: memory: Improve implementation of device shared memory.
2020-04-23 11:37:12 -04:00
bunnei
eb26e9e711
Merge pull request #3730 from lioncash/time
...
service/time: Remove reliance on the global system accessor
2020-04-23 02:41:38 -04:00
bunnei
2409fedacf
Merge pull request #3697 from lioncash/declarations
...
CMakeLists: Enable -Wmissing-declarations on Linux builds
2020-04-23 02:18:52 -04:00
bunnei
bee2c64b34
Merge pull request #3725 from MerryMage/fpcr
...
thread: FPCR.FZ is likely not 1 (and FPCR.RMode = TieAway and FPCR.DN = 0)
2020-04-22 19:49:13 -04:00
bunnei
9bf3abcb63
Merge pull request #3698 from lioncash/warning
...
General: Resolve minor assorted warnings
2020-04-21 14:11:18 -04:00
David
11c63ca969
audio_renderer: Preliminary BehaviorInfo ( #3736 )
...
* audio_renderer: Preliminary BehaviorInfo
* clang format
* Fixed IsRevisionSupported
* fixed IsValidRevision
* Fixed logic error & spelling errors & crash
* Addressed issues
2020-04-20 22:57:30 -04:00
Lioncash
99eaa2e6f2
service: Update function tables
...
Keeps the service function tables up to date.
Updated based off information on SwitchBrew.
2020-04-20 15:53:49 -04:00
FearlessTobi
4e99a06c70
npad: Lower log level for VibrateController to Debug
2020-04-20 18:44:57 +02:00
FearlessTobi
6ce0f3575a
audren: Lower log level for RequestUpdateImpl to Debug
2020-04-20 18:44:41 +02:00
bunnei
6de36f0b61
Merge pull request #3712 from lioncash/remove
...
service: Remove unused RequestParser instances
2020-04-20 01:04:04 -04:00
bunnei
e3977243e2
Merge pull request #3709 from lioncash/am
...
am: Resolve ineffective moves
2020-04-20 00:15:00 -04:00
Lioncash
bfee33cce3
service/time: Remove reliance on the global system accessor
...
Eliminates usages of the global system accessor and instead passes the
existing system instance into the interfaces.
2020-04-19 16:31:28 -04:00
bunnei
10fb26f69c
Merge pull request #3696 from lioncash/cast-size
...
hle_ipc: Remove std::size_t casts where applicable
2020-04-19 14:24:15 -04:00
MerryMage
2bfac7b61d
thread: FPCR.FZ is likely not 1
2020-04-19 08:37:20 +01:00
Mat M
45964e6fec
Merge pull request #3715 from bunnei/fix-impl-fallthrough
...
service: hid: npad: Fix implicit fallthrough errors.
2020-04-18 14:44:20 -04:00
bunnei
a8d5d08e2e
service: hid: npad: Fix implicit fallthrough errors.
2020-04-18 14:41:08 -04:00
bunnei
907ba8794e
Merge pull request #3713 from lioncash/time
...
service/time: Minor changes
2020-04-17 21:04:43 -04:00
Lioncash
7714b02d95
time/system_clock_core: Remove unnecessary initializer
...
This is already initialized within the class body.
2020-04-17 20:04:06 -04:00
Lioncash
b533f18ab9
service/time: Mark IsStandardNetworkSystemClockAccuracySufficient as const
...
This doesn't modify internal member state.
2020-04-17 20:02:45 -04:00
Lioncash
0cfd3b94db
service/time: Add virtual destructors where applicable
...
Many of these implementations are used to implement a polymorphic
interface. While not directly used polymorphically, this prevents
virtual destruction from ever becoming an issue.
2020-04-17 19:59:31 -04:00
Lioncash
4d8a8a8033
service: Remove unused RequestParser instances
...
These aren't used, so they should be removed to reduce compilation
warnings.
2020-04-17 19:47:43 -04:00
Lioncash
7e585bce28
memory/slab_heap: Make use of static_cast over reinterpret_cast
...
Casting from void* with static_cast is permitted by the standard, so we
can just make use of that instead.
2020-04-17 19:38:59 -04:00
Lioncash
64f226889c
am: Resolve ineffective moves
...
Previously const objects were being std::moved, which results in no move
actually occurring. This resolves that.
2020-04-17 19:22:46 -04:00
bunnei
8bbe74a8dc
core: hle: Address various feedback & code cleanup.
...
- Should be no functional changes.
2020-04-17 00:59:36 -04:00
bunnei
6f3266e98b
memory: Add copyright notice for Atmosphere where applicable.
2020-04-17 00:59:35 -04:00
bunnei
02547a0cb4
kernel: Remove old VMManager class.
2020-04-17 00:59:35 -04:00
bunnei
37b79ebe85
service: ldr: Updates for new VMM.
...
- Includes removing some service impls. that are untested.
2020-04-17 00:59:35 -04:00
bunnei
a8292f6cd9
kernel: memory: page_table: Simplify GetPhysicalAddr impl.
2020-04-17 00:59:35 -04:00
bunnei
c629e544a7
kernel: svc: Updates for new VMM.
...
- Includes removing some SVC impls. that are untested.
2020-04-17 00:59:34 -04:00
bunnei
108564df57
kernel: process: Updates for new VMM.
2020-04-17 00:59:33 -04:00
bunnei
77382ac2b2
service: pl_u: Update for new shared memory layout.
2020-04-17 00:59:33 -04:00
bunnei
67b3df683b
service: time: Update for new shared memory layout.
2020-04-17 00:59:33 -04:00
bunnei
8eca0f9cd2
service: hid: Update for new shared memory layout.
2020-04-17 00:59:33 -04:00
bunnei
8bbc38a7bd
service: irs: Update for new shared memory layout.
2020-04-17 00:59:32 -04:00
bunnei
fc61cb44ee
kernel: resource_limit: Reserve physical memory.
2020-04-17 00:59:32 -04:00
bunnei
8f75524e55
kernel: Initialize memory layout for new VMM.
2020-04-17 00:59:32 -04:00
bunnei
11c02a50e9
core: system: Rename GetDeviceManager -> DeviceManager.
...
- More consistent with other system components.
2020-04-17 00:59:32 -04:00
bunnei
3fcc4cab4f
kernel: transfer_memory: Refactor for new VMM.
2020-04-17 00:59:32 -04:00
bunnei
d0162fc3d7
kernel: shared_memory: Refactor for new VMM.
2020-04-17 00:59:32 -04:00
bunnei
a238d08f71
kernel: errors: Add ERR_OUT_OF_RESOURCES.
2020-04-17 00:59:31 -04:00
bunnei
ffc3de762b
kernel: process_capability: Update to use Memory::PageTable.
2020-04-17 00:59:31 -04:00
bunnei
84f1b6d530
kernel: memory: Add PageTable class, to manage process address space.
2020-04-17 00:59:31 -04:00
bunnei
cfae8a1c1a
kernel: memory: Add MemoryLayout class, to build physical memory layout.
2020-04-17 00:59:31 -04:00
bunnei
5d6e8a5b44
kernel: memory: Add MemoryManager class, to manage page heaps.
2020-04-17 00:59:30 -04:00
bunnei
548ef190ab
kernel: memory: Add MemoryBlockManager class, to manage memory blocks.
2020-04-17 00:59:30 -04:00
bunnei
3927012734
kernel: memory: Add PageHeap class, to manage a heap of pages.
2020-04-17 00:59:30 -04:00
bunnei
dc720311cc
kernel: memory: Add PageLinkedList class, to manage a list of pages.
2020-04-17 00:59:30 -04:00
bunnei
81cb4d3c7f
kernel: memory: Add system_control code, which will be used for ASLR support.
2020-04-17 00:59:30 -04:00
bunnei
fc040b5b70
physical_memory: Add missing include for <vector>.
2020-04-17 00:59:30 -04:00
bunnei
c2f4dcb1e3
kernel: memory: Add MemoryBlock class, for managing memory blocks and their state.
2020-04-17 00:59:29 -04:00
bunnei
ea5ee9918e
kernel: memory: Add memory_types.h, for things that are commonly used in memory code.
2020-04-17 00:59:29 -04:00
bunnei
d364e7cf09
kernel: memory: Add SlabHeap class, for managing memory heaps.
...
- This will be used for TLS pages, among other things.
2020-04-17 00:59:29 -04:00
bunnei
14aa65ce00
kernel: memory: Add AddressSpaceInfo class, for managing the memory address space.
2020-04-17 00:59:29 -04:00
bunnei
4caff51710
core: memory: Move to Core::Memory namespace.
...
- helpful to disambiguate Kernel::Memory namespace.
2020-04-17 00:59:28 -04:00
bunnei
ad48ebb2c8
core: kernel: Add svc_types header to include SVC-specific types.
2020-04-17 00:59:28 -04:00
bunnei
82d457af37
core: kernel: Move SVC to its own namesapce.
2020-04-17 00:59:28 -04:00
bunnei
b0e3cbef7a
kernel: resource_limit: Improvements to implementation.
2020-04-17 00:59:27 -04:00
bunnei
f2676efe23
process: SetupMainThread: Zero out argument on process start.
2020-04-17 00:11:50 -04:00
Lioncash
e2d8be1ca2
General: Resolve warnings related to missing declarations
2020-04-16 23:43:34 -04:00
bunnei
86f9c9aa1c
Merge pull request #3671 from lioncash/switch
...
kernel/thread: Resolve -Wswitch warnings
2020-04-16 23:30:32 -04:00
Lioncash
337f2dc11f
time_zone_manager: Resolve sign conversion warnings
...
ttis and ats will never exceed the length of INT32_MAX in our case, so
this is safe.
2020-04-16 22:23:59 -04:00
Lioncash
77356731a9
hle_ipc: Remove std::size_t casts where applicable
...
These were added in the change that enabled -Wextra on linux builds so
as not to introduce interface changes in the same change as a
build-system flag addition.
Now that the flags are enabled, we can freely change the interface to
make these unnecessary.
2020-04-16 22:02:10 -04:00
bunnei
79c1269f0f
Merge pull request #3673 from lioncash/extra
...
CMakeLists: Specify -Wextra on linux builds
2020-04-16 21:12:33 -04:00
Rodrigo Locatti
db67e017cb
Merge pull request #3659 from bunnei/time-calc-standard-user
...
service: time: Implement CalculateStandardUserSystemClockDifferenceByUser.
2020-04-16 02:51:57 -03:00
Lioncash
1c340c6efa
CMakeLists: Specify -Wextra on linux builds
...
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
2020-04-15 21:33:46 -04:00
Lioncash
213fff67bc
CMakeLists: Make -Wreorder a compile-time error
...
This can result in silent logic bugs within code, and given the amount
of times these kind of warnings are caused, they should be flagged at
compile-time so no new code is submitted with them.
2020-04-15 14:14:41 -04:00
Lioncash
521c4c33b5
kernel/thread: Resolve -Wswitch warnings
2020-04-15 13:48:14 -04:00
bunnei
eb676c343a
service: time: Implement CalculateStandardUserSystemClockDifferenceByUser.
...
- Used by Animal Crossing: New Horizons.
2020-04-14 22:28:41 -04:00
bunnei
598740f1dd
service: friend: Stub IFriendService::GetBlockedUserListIds.
...
- This is safe to stub, as there should be no adverse consequences from reporting no blocked users.
2020-04-14 16:20:51 -04:00
bunnei
a9f866264d
Merge pull request #3606 from ReinUsesLisp/nvflinger
...
service/vi: Partially implement BufferQueue disconnect
2020-04-12 11:44:48 -04:00
Fernando Sahmkow
486a42c45a
Buffer queue: Correct behavior of free buffer.
...
This corrects the behavior of free buffer after witnessing it in an
unrelated hardware test. I haven't found any games affected by it but in
name of better accuracy we'll correct such behavior.
2020-04-10 16:44:28 -04:00
ReinUsesLisp
8c0ba9c6fe
service/vi: Partially implement BufferQueue disconnect
2020-04-10 01:00:50 -03:00
Fernando Sahmkow
9d8886b1a4
Merge pull request #3563 from bunnei/fix-ldr-memstate
...
services: ldr: Fix MemoryState for read/write regions of NROs.
2020-04-03 10:14:56 -04:00
Morph
224a75d839
capsrv: Split Capture services into individual files and stub GetAlbumContentsFileListForApplication ( #3571 )
...
* Organize capture services into individual files
* Stub GetAlbumContentsFileListForApplication
* Address feedback
2020-03-31 19:16:36 -04:00
bunnei
2c9879d2eb
Merge pull request #3568 from bunnei/time-calcspan
...
services: time: Implement CalculateSpanBetween.
2020-03-29 00:03:55 -04:00
bunnei
ffe1e2b5ec
Merge pull request #3562 from perillamint/vrsvc
...
am: Implement VR related APIs
2020-03-28 13:32:52 -04:00
bunnei
8a6a25e4b6
services: hid: Stub InitializeSevenSixAxisSensor.
...
- Used by Super Smash Bros. Ultimate v7.0.0.
2020-03-27 10:48:01 -04:00
bunnei
a60f34a850
services: time: Implement CalculateSpanBetween.
...
- Used by Super Smash Bros. Ultimate.
2020-03-27 10:42:13 -04:00
perillamint
a429644672
am: Implement VR related APIs
...
Implement (and stub) VR related APIs in AM sysmodule.
This fixes issue #2938
2020-03-27 18:22:28 +09:00
bunnei
5228bd0bb9
services: ldr: Fix MemoryState for read/write regions of NROs.
...
- Fixes #3541 , used by Final Fantasy VIII Remastered.
2020-03-26 15:52:59 -04:00
FearlessTobi
4afebf26b6
sm/controller: Increase PointerBufferSize
...
This increases the PointerBufferSize as a lager one is required by some services.
This change is still not hw-accurate, but it is proven to work in Ryujinx.
Instead of using a hardcoded size, we should figure out the specific values for each service in the future. Some of them can be taken from Atmosphere: https://github.com/Atmosphere-NX/Atmosphere/search?q=PointerBufferSize .
2020-03-23 03:19:30 +01:00
bunnei
e731c4b991
Merge pull request #3477 from FearlessTobi/webapplet-shit
...
core/web_browser: Allow WebApplet to exit gracefully when an error occurs
2020-03-22 13:11:02 -04:00
FearlessTobi
977418c65b
core/web_browser: Allow WebApplet to exit gracefully when an error occurs
...
Currently, yuzu just freezes when an error occurs while Initializing the WebApplet.
From a user perspective, this obviously isn't great as the game just softlocks.
With this change, yuzu will call the Finalize method, so to the game it seems like as the user just exited the WebApplet normally.
This works around https://github.com/yuzu-emu/yuzu/issues/2852 .
2020-03-22 16:01:13 +01:00
Dan
06dea163fa
set: implement GetRegionCode
2020-03-19 10:37:42 +01:00
ReinUsesLisp
ac7ee21331
time_zone_content_manager: Fix out of bounds read
...
There were cases where raw_data didn't contain enough
space to hold the zero terminator.
This was caught with -fsanitize=address.
2020-03-18 19:06:16 -03:00
Fernando Sahmkow
95b804ff05
NVFlinger: Do the microprofile Flip after processing a valid frame.
2020-03-12 10:52:44 -04:00
bunnei
dba112e510
core: hle: Implement separate A32/A64 SVC interfaces.
2020-03-02 21:52:03 -05:00
bunnei
c083ea7d78
core: Implement separate A32/A64 ARM interfaces.
2020-03-02 21:51:57 -05:00
Morph
e1efab1f51
AM/ICommonStateGetter: Stub SetLcdBacklighOffEnabled ( #3454 )
...
* Stub SetLcdBacklighOffEnabled
Used by Super Smash Bros. Ultimate
We require backlight services to be implemented to turn on/off the backlight.
* Address feedback
2020-02-27 17:49:23 +01:00
bunnei
01a05b48b7
Merge pull request #3431 from CJBok/npad-fix
...
InputCommon: analog_from_button get direction implementation
2020-02-25 21:39:26 -05:00
Fernando Sahmkow
3d0a2375ca
Scheduler: Inline global scheduler in Scheduler Lock.
2020-02-22 12:39:17 -04:00
Fernando Sahmkow
a1bf353780
Kernel: Correct pending feedback.
2020-02-22 11:51:03 -04:00
Fernando Sahmkow
d219a96cc8
Kernel: Address Feedback.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
ea956c823e
Kernel: Implement Scheduler locks
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
5c90d22f3d
Kernel: Implement Time Manager.
2020-02-22 11:18:07 -04:00
Fernando Sahmkow
179bafa7cb
Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.
2020-02-22 11:18:06 -04:00
Fernando Sahmkow
0728dfef84
Kernel: Make global scheduler depend on KernelCore
2020-02-22 11:18:06 -04:00
Brian Clinkenbeard
ad4e5c15fb
httplib compatibility
2020-02-18 18:04:33 -08:00
CJBok
23c4cc80e2
analog_from_button get direction implementation
2020-02-18 06:45:37 +01:00
bunnei
26006cbd2c
Merge pull request #3420 from namkazt/master2
...
nvhost_gpu: implement ChannelSetTimeslice
2020-02-17 00:31:11 -05:00
Nguyen Dac Nam
5257a83ebe
IUserLocalCommunicationService: add function Initialize2
2020-02-16 13:24:34 +07:00
Nguyen Dac Nam
6c0eb6026b
HLE: correct function name of IUserLocalCommunicationService
...
402: function name should be Initialize2 (7.0.0+) not SetOperationMode
Follow by: https://switchbrew.org/wiki/LDN_services#IUserLocalCommunicationService
2020-02-16 13:14:06 +07:00
namkazy
7fadc9c180
nvhost_gpu: implement ChannelSetTimeslice
2020-02-16 11:53:03 +07:00
bunnei
f552d553ba
Merge pull request #3401 from FernandoS27/synchronization
...
Set of refactors for Kernel Synchronization and Hardware Constants
2020-02-14 14:40:20 -05:00
bunnei
74feed372c
Merge pull request #3400 from makigumo/patch-1
...
update hwopus DecodeInterleaved for FW 7.0.0+
2020-02-13 21:26:13 -05:00
Fernando Sahmkow
2bc949628d
Core: Address Feedback
2020-02-13 19:10:33 -04:00
Lioncash
be269e21a5
address_arbiter: Collapse loops in InsertThread() and RemoveThread()
...
Same behavior, but without the need to explicitly loop through
everything manually.
2020-02-12 15:34:07 -05:00
Lioncash
9f2c703137
address_arbiter: Simplify GetThreadsWaitingOnAddress()
...
Simplifies the overall function and also allows for it to become a
const-qualified member function.
2020-02-12 15:10:16 -05:00
bunnei
8f8dda2d5b
Merge pull request #3403 from lioncash/debug
...
bcat/backend: Prevent fmt exception in debug log within NullBackend::Clear()
2020-02-12 11:17:43 -05:00
Lioncash
f00a54f508
bcat/backend: Make formatting of passphrase consistent in NullBackend::SetPassphrase()
...
Aligns the '=' to be consistent with the rest of the logs within this
source file.
2020-02-12 01:18:29 -05:00
Lioncash
eefd97e80d
bcat/backend: Prevent fmt exception in debug log within NullBackend::Clear()
...
A formatting specifier within Clear wasn't being used, which will cause
fmt to throw an exception. This fixes that.
2020-02-12 01:14:47 -05:00
Lioncash
b80c348b09
kernel/thread: Remove trivial usages of the global system accessor
...
We can just use the kernel member variable directly instead of going
through the system to obtain the same thing.
2020-02-12 01:00:41 -05:00
Fernando Sahmkow
1e6f8aba04
Core: Set all hardware emulation constants in a single file.
2020-02-11 20:19:11 -04:00
Fernando Sahmkow
d23d504d77
Kernel: Refactor synchronization to better match RE
2020-02-11 18:47:31 -04:00
makigumo
926ea5a16d
update hwopus DecodeInterleaved for FW 7.0.0+
...
trivial change,
see https://switchbrew.org/wiki/Audio_services#IHardwareOpusDecoder
2020-02-11 18:41:04 +01:00
Fernando Sahmkow
c5aefe42aa
Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.
2020-02-11 10:46:25 -04:00
bunnei
7b07e521ca
hle: services: Use std::shared_ptr instead of copy by value.
2020-02-07 23:02:26 -05:00
bunnei
aa3f9b9606
Merge pull request #3381 from bunnei/ipc-fix
...
hle: services: Fix prepo IPC, and add better error checking.
2020-02-07 16:25:42 -05:00
bunnei
ba53543da6
kernel: transfer_memory: Properly reserve and reset memory region.
2020-02-05 23:06:54 -05:00
Zach Hilman
7a547b9342
wait_object: Make wait behavior only require one object to signal.
...
- This was holdover from citra.
2020-02-05 23:06:53 -05:00
bunnei
3a0c1e79f8
am: Correct IPC object count mismatch.
2020-02-05 23:06:53 -05:00
bunnei
77da74e17a
services: am: Clear events on PopOutData and PopInteractiveOutData.
2020-02-05 23:06:52 -05:00
bunnei
84e895cdd6
am: Refactor IStorage interface.
2020-02-05 23:06:52 -05:00
bunnei
3557fa25d0
applets: software_keyboard: Signal state change on end of interactive session.
2020-02-05 23:06:51 -05:00
bunnei
be5fcffb89
applets: software_keyboard: Minor cleanup.
2020-02-05 23:06:50 -05:00
bunnei
2245c24e21
services: prepo: Fix IPC interface with SaveReport/SaveReportWithUser.
2020-02-05 22:52:35 -05:00
bunnei
9751ccc5e0
hle_ipc: Add error checking to read/write buffer access.
2020-02-05 22:52:35 -05:00
bunnei
69a6796de1
Merge pull request #3284 from CJBok/hid-fix
...
hid: Fix analog sticks directional states
2020-02-01 14:02:41 -05:00
Lioncash
2de2bb980e
kernel/physical_core: Make use of std::unique_ptr
...
shared_ptr was used in 2d1984c20c
due to a
misunderstanding of how the language generates move constructors and
move assignment operators.
If a destructor is user-provided, then the compiler won't generate the
move constructor and move assignment operators by default--they must be
explicitly opted into.
The reason for the compilation errors is due to the fact that the
language will fall back to attempting to use the copy constructor/copy
assignment operators if the respective move constructor or move
assignment operator is unavailable.
Given that we explicitly opt into them now, the the move constructor and
move assignment operators will be generated as expected.
2020-01-30 18:42:40 -05:00
Lioncash
51927bc9dc
kernel/physical_core: Remove unused kernel reference member variable
...
This isn't used within the class, so it can be removed to simplify the
overall interface.
While we're in the same area, we can simplify a unique_ptr reset() call.
2020-01-30 18:29:57 -05:00
bunnei
985d0f35e5
Merge pull request #3353 from FernandoS27/aries
...
System: Refactor CPU Core management and move ARMInterface and Schedulers to Kernel
2020-01-30 18:13:59 -05:00
Fernando Sahmkow
2d1984c20c
System: Address Feedback
2020-01-27 09:54:11 -04:00
Fernando Sahmkow
a1630ab53e
Kernel: Remove a few global instances from the kernel.
2020-01-26 14:23:46 -04:00
Fernando Sahmkow
e4a1ead897
Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.
...
This commit instends on better naming the new purpose of this classes.
2020-01-26 14:07:22 -04:00
Fernando Sahmkow
450341b397
ArmInterface: Delegate Exclusive monitor factory to exclusive monitor interfasce.
2020-01-26 10:28:23 -04:00
Fernando Sahmkow
4d6a86b03f
Core: Refactor CPU Management.
...
This commit moves ARM Interface and Scheduler handling into the kernel.
2020-01-25 18:55:32 -04:00
bunnei
2a822f3378
bsd: Stub several more functions.
...
- Required for Little Town Hero to boot further.
2020-01-25 00:47:15 -05:00
Fernando Sahmkow
ab89ced244
Kernel: Implement Physical Core.
2020-01-24 15:38:20 -04:00
bunnei
ed76c71319
service: time: Implement ToPosixTimeWithMyRule.
...
- Used by Pokemon Mystery Dungeon.
2020-01-22 23:20:19 -05:00
bunnei
7113236b30
time: Fix month off-by-one error.
...
- Fixes timestamp in ZLA and Astral Chain saves.
2020-01-20 14:20:32 -05:00
bunnei
8b9f433d95
Merge pull request #3271 from bunnei/time-rewrite
...
service: time: Rewrite implementation of glue services.
2020-01-19 22:45:05 -05:00
Markus Wick
56672b8c98
core/memory: Create a special MapMemoryRegion for physical memory.
...
This allows us to create a fastmem arena within the memory.cpp helpers.
2020-01-18 08:38:47 +01:00
Markus Wick
55103da066
core/hle: Simplify PhysicalMemory usage in vm_manager.
2020-01-18 08:29:19 +01:00
CJBok
635deb70d4
Moved analog direction logic to sdl_impl
2020-01-15 11:25:15 +01:00
CJBok
231d9c10f3
Corrected directional states sensitivity
2020-01-14 21:51:58 +01:00
Markus Wick
c76ffa5019
core/kernel: Fix GetTotalPhysicalMemoryUsed.
...
module._memory was already moved over to a new shared_ptr.
So code_memory_size was not increased at all.
This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB.
This fixes a regression of c0a01f3adc
2020-01-11 14:04:44 +01:00
CJBok
ae7fd01e38
hid: Fix analog sticks directional states
2020-01-09 02:40:55 +01:00
bunnei
319c4d2108
Merge pull request #3272 from bunnei/vi-close-layer
...
service: vi: Implement CloseLayer.
2020-01-07 12:45:34 -05:00
bunnei
89fc75d769
Merge pull request #3257 from degasus/no_busy_loops
...
video_core: Block in WaitFence.
2020-01-06 00:09:57 -05:00
bunnei
6fe51f398f
Merge pull request #2945 from FernandoS27/fix-bcat
...
nifm: Only return that there's an internet connection when there's a BCATServer
2020-01-05 02:17:16 -05:00
bunnei
be5c149d37
service: time: Implement GetStandardLocalSystemClock.
2020-01-04 22:18:54 -05:00