Lioncash
313cc36fec
kernel/vm_manager: Handle stack/TLS IO region placement better
...
Handles the placement of the stack a little nicer compared to the
previous code, which was off in a few ways. e.g.
The stack (new map) region, shouldn't be the width of the entire address
space if the size of the region calculation ends up being zero. It
should be placed at the same location as the TLS IO region and also have
the same size.
In the event the TLS IO region contains a size of zero, we should also
be doing the same thing. This fixes our memory layout a little bit and
also resolves some cases where assertions can trigger due to the memory
layout being incorrect.
2019-07-05 21:57:31 -04:00
Lioncash
48807e9a24
core/reporter: Allow moves into SaveToFile()
...
Taking the json instance as a constant reference, makes all moves into
the parameter non-functional, resulting in copies. Taking it by value
allows moves to function.
2019-07-05 17:45:34 -04:00
Lioncash
2321656dbe
core/reporter: Add missing includes and forward declarations
...
Adds missing inclusions to prevent potential compilation issues.
2019-07-05 17:45:24 -04:00
Lioncash
e721c344ae
core/reporter: Remove unnecessary namespace qualifiers
...
The Reporter class is part of the Core namespace, so the System class
doesn't need to be qualified.
2019-07-05 17:09:26 -04:00
Lioncash
6ec48af222
core/reporter: Remove pessimizing move in GetHLERequestContextData()
...
This can inhibit copy-elision, so we can remove this redundant move.
2019-07-05 17:08:13 -04:00
Lioncash
f12eb40834
core/reporter: Make bracing consistent
...
Makes all control statements braced, regardless of their size, making
code more uniform.
2019-07-05 17:05:27 -04:00
Lioncash
7ad11e3867
core/reporter: Return in error case in SaveToFile()
...
If the path couldn't be created, then we shouldn't be attempting to save
the file.
2019-07-05 17:02:32 -04:00
Fernando Sahmkow
0fc98958a3
NVServices: Correct delayed responses.
2019-07-05 15:49:35 -04:00
Fernando Sahmkow
8c91d5c166
Nv_Host_Ctrl: Correct difference calculation
2019-07-05 15:49:34 -04:00
Fernando Sahmkow
f3a39e0c9c
NVServices: Address Feedback
2019-07-05 15:49:33 -04:00
Fernando Sahmkow
d20ede40b1
NVServices: Styling, define constructors as explicit and corrections
2019-07-05 15:49:32 -04:00
Fernando Sahmkow
b391e5f638
NVFlinger: Correct GCC compile error
2019-07-05 15:49:31 -04:00
Fernando Sahmkow
0335a25d1f
NVServices: Make NVEvents Automatic according to documentation.
2019-07-05 15:49:29 -04:00
Fernando Sahmkow
b6844bec60
NVServices: Correct CtrlEventWaitSync to block the ipc until timeout.
2019-07-05 15:49:28 -04:00
Fernando Sahmkow
7d1b974bca
GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware
2019-07-05 15:49:26 -04:00
Fernando Sahmkow
61697864c3
nvflinger: Make the force 30 fps still force 30 fps
2019-07-05 15:49:25 -04:00
Fernando Sahmkow
efdeab3a1d
nv_services: Fixes to event liberation.
2019-07-05 15:49:24 -04:00
Fernando Sahmkow
ea97589624
nvflinger: Acquire buffers in the same order as they were queued.
2019-07-05 15:49:23 -04:00
Fernando Sahmkow
24408cce9b
nv_services: Deglobalize NvServices
2019-07-05 15:49:22 -04:00
Fernando Sahmkow
0706d633bf
nv_host_ctrl: Make Sync GPU variant always return synced result.
2019-07-05 15:49:20 -04:00
Fernando Sahmkow
78add28aab
nvhost_ctrl: Corrections to event handling
2019-07-05 15:49:17 -04:00
Fernando Sahmkow
eef55f493b
Gpu: Mark areas as protected.
2019-07-05 15:49:16 -04:00
Fernando Sahmkow
a45643cb3b
nv_services: Stub CtrlEventSignal
2019-07-05 15:49:15 -04:00
Fernando Sahmkow
8942047d41
Gpu: Implement Hardware Interrupt Manager and manage GPU interrupts
2019-07-05 15:49:14 -04:00
Fernando Sahmkow
e0027eba85
nv_services: Implement NvQueryEvent, NvCtrlEventWait, NvEventRegister, NvEventUnregister
2019-07-05 15:49:13 -04:00
Fernando Sahmkow
7039ece0a0
nv_services: Create GPU channels correctly
2019-07-05 15:49:12 -04:00
Fernando Sahmkow
82b829625b
video_core: Implement GPU side Syncpoints
2019-07-05 15:49:11 -04:00
Fernando Sahmkow
737e978f5b
nv_services: Correct buffer queue fencing and GPFifo fencing
2019-07-05 15:49:10 -04:00
Fernando Sahmkow
ceb5f5079c
nvflinger: Implement swap intervals
2019-07-05 15:49:08 -04:00
Zach Hilman
3f3a93f13b
Merge pull request #2669 from FearlessTobi/move-cpujit-setting
...
yuzu: Move CPU Jit setting to Debug tab
2019-07-04 15:33:59 -04:00
Zach Hilman
54a02d14fd
Merge pull request #2555 from lioncash/tls
...
kernel/process: Decouple TLS handling from threads
2019-07-04 15:32:32 -04:00
fearlessTobi
447bdac298
yuzu: Remove CPU Jit setting from the UI
...
A normal user shouldn't change this, as it will slow down the emulation and can lead to bugs or crashes. The renaming is done in order to prevent users from leaving this on without a way to turn it off from the UI.
2019-07-04 14:48:08 +02:00
bunnei
3c7eed16dc
Merge pull request #2658 from ogniK5377/QueryAudioDeviceOutputEvent
...
IAudioDevice::QueryAudioDeviceOutputEvent
2019-07-04 01:42:22 -04:00
bunnei
70b595a63b
Merge pull request #2638 from DarkLordZach/quest-flag
...
set: Implement GetQuestFlag with config option
2019-07-04 01:40:41 -04:00
Lioncash
e23110bd9f
kernel/process: Default initialize all member variables
...
Ensures a Process instance is always created with a deterministic
initial state.
2019-07-03 20:31:40 -04:00
Lioncash
abdce723eb
kernel/process: Decouple TLS handling from threads
...
Extracts out all of the thread local storage management from thread
instances themselves and makes the owning process handle the management
of the memory. This brings the memory management slightly more in line
with how the kernel handles these allocations.
Furthermore, this also makes the TLS page management a little more
readable compared to the lingering implementation that was carried over
from Citra.
2019-07-03 20:31:40 -04:00
Lioncash
55481df50f
kernel/vm_manager: Add overload of FindFreeRegion() that operates on a boundary
...
This will be necessary for making our TLS slot management slightly more
straightforward. This can also be utilized for other purposes in the
future.
We can implement the existing simpler overload in terms of this one
anyways, we just pass the beginning and end of the ASLR region as the
boundaries.
2019-07-03 20:29:49 -04:00
Zach Hilman
beb3d77a79
Merge pull request #2613 from ogniK5377/InitalizeApplicationInfo
...
Implemented InitializeApplicationInfo & InitializeApplicationInfoRestricted
2019-07-03 20:23:56 -04:00
Zach Hilman
e86af37ecb
Merge pull request #2608 from ogniK5377/Time_GetSharedMemoryNativeHandle
...
Implement Time::GetSharedMemoryNativeHandle
2019-07-03 20:22:23 -04:00
bunnei
58032e0085
Merge pull request #2604 from ogniK5377/INotificationService
...
Implemented INotificationService
2019-07-02 23:32:57 -04:00
Bakugo
b50557d1f0
file_sys: Rename other ContentRecordType members
2019-07-02 00:57:23 +01:00
David Marcec
965608e6d1
IAudioDevice::QueryAudioDeviceOutputEvent
...
The event should only be signaled when an output audio device gets changed. Example, Speaker to USB headset. We don't identify different devices internally yet so there's no need to signal the event yet.
2019-07-01 18:05:44 +10:00
Bakugo
c72ef5f405
file_sys/registered_cache: Improve missing metadata error
...
This can happen when installing NSPs too, not just XCIs.
2019-07-01 07:31:32 +01:00
Bakugo
9968c0883a
file_sys/submission_package: Don't warn about missing DeltaFragment NCAs
...
DeltaFragments are not useful to us and are often not included in patch NSPs.
2019-07-01 06:46:05 +01:00
Bakugo
79163fca80
file_sys/registered_cache: Ignore DeltaFragment NCAs during installation
...
DeltaFragments are only used to download and apply partial patches on a real console, and are not useful to us at all. Most patch NSPs do not include them, and when they do, it's a waste of space to install them.
2019-07-01 06:37:22 +01:00
Bakugo
306a24aad7
file_sys: Rename ContentRecordType::Patch to DeltaFragment
...
Avoids potential confusion, since patches and DeltaFragments are not the same thing. Actual full patches are listed under the Program type.
2019-07-01 06:32:13 +01:00
David Marcec
472210bf72
hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignment
...
StartLrAssignmentMode and StopLrAssignmentMode don't require any implementation as it's just used for showing the screen of changing the controller orientation if the user wishes to do so. Ever since #1634 this has not been needed as users can specify the controller orientation from the config and swap at any time. We store a private member just in case this gets used for anything extra in the future
2019-07-01 15:12:57 +10:00
bunnei
d992909636
Merge pull request #2583 from FernandoS27/core-timing-safe
...
Core_Timing: Make core_timing threadsafe by default.
2019-06-30 12:54:00 -04:00
Zach Hilman
7e5d7773cc
am: Implement SetCpuBoostMode in terms of APM
2019-06-28 22:46:51 -04:00
Zach Hilman
e2ad3e1fb0
core: Keep instance of APM Controller
2019-06-28 22:46:31 -04:00
Zach Hilman
e52306ca60
apm: Implement SetCpuBoostMode
2019-06-28 22:46:00 -04:00
Zach Hilman
1c6e6305ea
apm: Add getters for performance config and mode
2019-06-28 22:45:31 -04:00
Zach Hilman
9175b00e7d
apm: Add apm:am service
...
8.0.0+ identical version of apm
2019-06-28 22:44:30 -04:00
Zach Hilman
65eb9cbb28
apm: Add Controller class to manage speed data and application
2019-06-28 22:43:51 -04:00
Zach Hilman
d40f38967e
fsp-srv: Implement GetAccessLogVersionInfo
...
Returns some misc. data about logging to help the game determine if it should log.
2019-06-28 21:05:42 -04:00
Zach Hilman
554e2f2f98
reporter: Add report class for filesystem access logs
2019-06-28 21:02:50 -04:00
Zach Hilman
db2fdd0352
fsp-srv: Implement OutputAccessLogToSdCard
...
Allows games to log data to the SD.
2019-06-28 21:02:34 -04:00
Zach Hilman
f477c5dfdd
set: Implement GetQuestFlag
...
Simply returns a true/false value indicating if the system is a kiosk system. This has been mapped to a config option for the purposes of yuzu.
2019-06-28 18:38:47 -04:00
Zach Hilman
efa7d8d04b
settings: Add config option for kiosk (quest) mode
2019-06-28 18:37:33 -04:00
bunnei
bb4a1e059c
Merge pull request #2533 from DarkLordZach/memory-frozen
...
memory: Add class to manage and enforce memory freezing
2019-06-28 14:03:38 -04:00
David Marcec
dfe4b3f723
Attemp clang format fix?
...
Seems to be an issue with clang format
2019-06-28 22:08:50 +10:00
David Marcec
7d417d501d
Added errors.h to cmakelist
2019-06-28 15:31:29 +10:00
David Marcec
c2146c4eef
Addressed issues
2019-06-28 15:29:38 +10:00
David Marcec
fd6549be73
Addressed issues
2019-06-28 15:19:51 +10:00
David Marcec
0b03e8a98f
Implemented InitializeApplicationInfo & InitializeApplicationInfoRestricted
...
InitializeApplicationInfoRestricted will need further implementation as it's checking for other user requirements about the game. As we're emulating, we're assuming the user owns the game so we skip these checks currently, implementation will need to be added further on
2019-06-27 16:44:42 +10:00
Zach Hilman
bce4bfffb6
pm: Implement pm:shell and pm:dmnt GetApplicationPid
...
Returns the process ID of the current application or 0 if no app is running.
2019-06-26 19:07:34 -04:00
Zach Hilman
354c254cde
pm: Implement pm:dmnt GetTitlePid
...
Takes a title ID and searches for a matching process, returning error if it doesn't exist, otherwise the process ID.
2019-06-26 19:06:51 -04:00
Zach Hilman
49af3bcdcb
pm: Implement pm:info GetTitleId
...
Searches the process list for a process with the specified ID, returning the title ID if it exists.
2019-06-26 19:05:04 -04:00
bunnei
5829ba1ccc
Merge pull request #2548 from DarkLordZach/applet-shopn
...
applets: Implement backend and default frontend for Parental Controls and EShop (ShopN) applets
2019-06-26 15:55:24 -04:00
David Marcec
f67039c067
Addressed issues
2019-06-26 16:52:34 +10:00
Zach Hilman
d10fc2d727
glue: Correct missing bytes in ApplicationLaunchParameter
2019-06-25 22:25:10 -04:00
David Marcec
19dc36ce06
Implement Time::GetSharedMemoryNativeHandle
...
This PR attempts to implement the shared memory provided by GetSharedMemoryNativeHandle. There is still more work to be done however that requires a rehaul of the current time module to handle clock contexts. This PR is mainly to get the basic functionality of the SharedMemory working and allow the use of addition to it whilst things get improved on.
Things to note:
Memory Barriers are used in the SharedMemory and a better solution would need to be done to implement this. Currently in this PR I’m faking the memory barriers as everything is sync and single threaded. They work by incrementing the counter and just populate the two data slots. On data reading, it will read the last added data.
Specific values in the shared memory would need to be updated periodically. This isn't included in this PR since we don't actively do this yet. In a later PR when time is refactored this should be done.
Finally, as we don't handle clock contexts. When time is refactored, we will need to update the shared memory for specific contexts. This PR does this already however since the contexts are all identical and not separated. We're just updating the same values for each context which in this case is empty.
Tiime:SetStandardUserSystemClockAutomaticCorrectionEnabled, Time:IsStandardUserSystemClockAutomaticCorrectionEnabled are also partially implemented in this PR. The reason the implementation is partial is because once again, a lack of clock contexts. This will be improved on in a future PR.
This PR closes issue #2556
2019-06-26 00:45:53 +10:00
David Marcec
192f1f7ebe
SizedNotificationInfo should be 0x10 bytes, user_uuid is incorrect, this should be the users account id
2019-06-25 15:19:37 +10:00
David Marcec
5d005b87a3
fixed spelling errors and fixed issue with Pop not returning the SizedNotificationInfo
2019-06-25 11:23:23 +10:00
Zach Hilman
3c4238657d
applets: Pass current process title ID to applets
...
Avoids using system accessor to get current process in applet code.
2019-06-24 20:07:10 -04:00
Zach Hilman
01ff38cca8
general_frontend: Add documentation for parental controls and ecommerce applets
2019-06-24 20:05:11 -04:00
Zach Hilman
73dcb13619
web_browser: Only delete temporary directory if it was created
...
Prevents crashes with ShopN applet occasionally.
2019-06-24 20:05:11 -04:00
Zach Hilman
d018ac2c60
web_browser: Take ECommerce applet frontend optionally in constructor
...
If it is needed but wasn't passed (or passed nullptr), the Shop handling code will alert and throw an error.
2019-06-24 20:05:11 -04:00
Zach Hilman
54684feffa
frontend: Add base class and default impl for ECommerce applet frontend
2019-06-24 20:05:11 -04:00
Zach Hilman
3898c3903e
web_browser: Use function tables for execute and initialize
...
Allows easy handling of multiple shim types, as they have enough in common to be the same backend but not enough to share init/exec.
2019-06-24 20:05:11 -04:00
Zach Hilman
675aa5f719
web_browser: Correct structures and properly parse TLVs/ShimKind
...
Much, much more HW-accurate and allows us to easily support all of the different web 'shim' types.
2019-06-24 20:05:11 -04:00
Zach Hilman
e447d8aafa
applets: Track ECommerce and Parental Control applet frontends
2019-06-24 20:05:11 -04:00
Zach Hilman
6ff9008230
web_browser: Rename OpenPage to OpenPageLocal
...
This is more representative of what actually occurs, as web does support remote URLs which wouldn't need a romfs callback. This paves for easy future support of this with a call like 'OpenPageRemote' or similar.
2019-06-24 20:05:11 -04:00
Zach Hilman
c96450f6e2
frontend: Add base class and default impl of parent controls applet frontend
2019-06-24 20:05:11 -04:00
Zach Hilman
9d2d349d7b
applets: Implement Auth applet backend
...
This is responsible for parental controls and supports verifying, changing, and registering PIN codes.
2019-06-24 20:05:11 -04:00
Zach Hilman
d40a38df8d
core: Keep track of ARPManager and register current application on boot
2019-06-24 19:27:35 -04:00
Zach Hilman
ce21973022
glue: Implement arp:w and arp:r services
...
These keep track of running process' launch properties and control properties and allows for issuing and reading them by process and title ID.
2019-06-24 19:26:16 -04:00
Zach Hilman
df3ee4f444
glue: Add errors for glue/arp services
2019-06-24 19:20:28 -04:00
Zach Hilman
4fab0d392b
glue: Add scaffolding for bgtc:t and bgtc:sc services
2019-06-24 19:20:06 -04:00
Zach Hilman
9003e19797
arp: Move to glue services
...
Glue is the name of the sysmodule that contains both arp and bgtc.
2019-06-24 19:17:48 -04:00
Zach Hilman
5f8d2a2044
glue: Add manager to keep track of application registry
...
Manages mapping between title IDs and application launch and control properties.
2019-06-24 19:17:13 -04:00
Zach Hilman
db2e5e5fa6
registered_cache: Add getter to determine source slot in content provider union
...
Used to determine StorageId source for application data.
2019-06-24 19:10:17 -04:00
Zach Hilman
a468273221
patch_manager: Add getter for title version
2019-06-24 19:05:50 -04:00
David Marcec
e49ae3bf92
Implemented INotificationService
2019-06-24 12:26:45 +10:00
Thomas May
334e6370f9
Update reporter.cpp
2019-06-22 14:39:52 +01:00
bunnei
69e490b303
Merge pull request #2602 from lioncash/cast
...
service/acc: Silence truncation warnings
2019-06-21 15:27:25 -04:00
bunnei
8f8fa82c83
Merge pull request #2575 from DarkLordZach/process-id-types
...
kernel: Differentiate kernel and user processes when picking ID
2019-06-21 15:25:50 -04:00
bunnei
e2f7933b3f
Merge pull request #2546 from DarkLordZach/kips
...
loader, file_sys: Add support for parsing and loading KIP (Kernel Internal Process) files
2019-06-21 14:28:18 -04:00
bunnei
96412848a9
Merge pull request #2482 from DarkLordZach/prepo
...
core: Add detailed local reporting feature for development
2019-06-21 14:05:18 -04:00
Lioncash
82cd87f6c2
service/acc: Silence truncation warnings
...
The sanitizing function ensures that the returned type is always the
correct type. This eliminates warnings without extra casts.
2019-06-21 10:04:31 -04:00