◱ PixelyIon
b84859d352
Remove support for multiple guest processes
...
This commit removes support for more than one guest processes as it requires a fair bit of extra code to support in addition the HLE service implementations don't support it anyway.
2020-02-15 10:25:14 +00:00
◱ PixelyIon
48d47a2b25
Move from dependency on JNI and Implement AtomicMutex
...
This commit is the start of moving towards a lockless and faster kernel which can run multiple independent threads with fast userspace synchronization.
2020-02-15 10:25:14 +00:00
◱ PixelyIon
3e9bfaec0e
Introduce Basic Junction Patching
...
This commit introduces basic junction patching or patching code to jump to a junction then execute intermediate functions and jump back.
2020-02-15 10:25:14 +00:00
◱ PixelyIon
f7ad017726
Adapt GetDefaultDisplayResolution to Push/Pop System
...
The PR: https://github.com/skyline-emu/skyline/pull/13 added in GetDefaultDisplayResolution but it used the older WriteValue function to write the data back. Moving to the Push/Pop system fixes this.
2019-12-11 17:31:12 +00:00
◱ PixelyIon
c5dce22a8c
Fix JNI Race Condition, Fix Release Builds and Fix Searching
...
This commit fixes JNI race conditions by usage of a mutex, fixes a bug in release builds due to ProGuard member obfuscation and fix searching by fixing the HeaderAdapter filter.
2019-12-11 17:31:12 +00:00
◱ PixelyIon
b3e811d488
Adapt C++ backend to changes
...
This commit adapts the C++ backend to the Kotlin frontend by moving to usage of file descriptors and, provides an interface to access frontend code via JNI which is used to check the state of the activity and catch events such as surface destruction. In addition, this commit fixes some minor linting errors and changes the CMake version to 3.10.2+.
2019-12-11 17:31:12 +00:00
◱ PixelyIon
38716989ae
Improve IPC interface
...
This commit changes how IPC is interacted with in two ways:
* Simplify all buffers into just InputBuffer and OutputBuffer
* Use pushing/popping for data payload
2019-12-11 17:31:12 +00:00
◱ PixelyIon
745cb208a6
Optimize deswizzling implementation and support multiple formats
...
The deswizzling implementation currently writes linearly and reads non-linearly, this is non optimal as the MMU cannot read ahead. This flips that and reads linearly while it writes non-linearly. This is based on: 324a3624ac/nx/source/display/framebuffer.c (L189)
.
2019-12-11 17:31:12 +00:00
◱ PixelyIon
e11d7d9ce0
Fix threading implementation & Fix SVC logging
...
This commit fixes the threading implementation and fixes errors in SVC logging and improves them in general.
2019-12-11 17:31:12 +00:00
◱ PixelyIon
1956a3bbbb
Make SVCs more accurate & Improve KSharedMemory
...
This commit adds logging to almost all SVCs with the exception of svcGetSystemTick and adds accurate error handling to them. It also improves how KSharedMemory is handled.
2019-12-11 17:31:12 +00:00
◱ PixelyIon
26a67f70b7
Move services out of the kernel and fix service registration
...
In addition, this adds a constructor for "RegionInfo".
2019-12-11 17:31:12 +00:00
greggameplayer
42239ae58b
Implement additional applet services and functions
...
This commit implements the services ISystemAppletProxy, IOverlayAppletProxy & IAppletCommonFunctions and implements the function GetDefaultDisplayResolution.
2019-11-17 22:29:58 +00:00
◱ PixelyIon
0d141b71e9
Min. API version to 26 (8.0) and use ASharedMemory
...
Move Minimum API version to Android 8.0 and switch from /dev/ashmem to ASharedMemory APIs.
2019-11-16 01:08:50 +05:30
◱ PixelyIon
423540328a
Fix svcWaitSynchronization
...
svcWaitSynchronization would return the handle of the object instead of the index of it's handle earlier, this is now fixed.
2019-11-15 19:30:04 +00:00
◱ PixelyIon
b3517357e1
Fix: Crash on reading domain header from Control message
...
The application would crash if there was a control request from a domain message. As it would still try to read the domain header in the message.
2019-11-15 19:30:04 +00:00
◱ PixelyIon
c005d7df74
Framebuffer and NativeActivity
...
What was added:
* Framebuffer
* NativeActivity
* NV Services
* IOCTL Handler
* NV Devices:
* * /dev/nvmap - 0xC0080101, 0xC0080103, 0xC0200104, 0xC0180105, 0xC00C0109, 0xC008010E
* * /dev/nvhost-as-gpu
* * /dev/nvhost-channel - 0x40044801, 0xC0104809, 0xC010480B, 0xC018480C, 0x4004480D, 0xC020481A, 0x40084714
* * /dev/nvhost-ctrl
* * /dev/nvhost-ctrl-gpu - 0x80044701, 0x80284702, 0xC0184706, 0xC0B04705, 0x80084714
* SVCs:
* * SetMemoryAttribute
* * CreateTransferMemory
* * ResetSignal
* * GetSystemTick
* Addition of Compact Logger
What was fixed:
* SVCs:
* * SetHeapSize
* * SetMemoryAttribute
* * QueryMemory
* A release build would not set CMAKE_BUILD_TYPE to "RELEASE"
* The logger code was simplified
2019-11-15 19:30:04 +00:00
◱ PixelyIon
19eae34315
libNX FS Initalization (v0.3)
...
What was added:
* libNX FS initalization
What was fixed:
* Release builds
2019-10-18 16:22:38 +05:30
◱ PixelyIon
e44809355c
libNX Time Initalization
...
What was added:
* Time service
* CNTPCT_EL0 redirected to CNTVCT_EL0
2019-10-17 01:53:35 +05:30
◱ PixelyIon
2476c5d48a
libNX HID initialization
...
What was added:
* HID Service
* Support for Mutexes and Conditional Variables
What was improved:
* Service API now creates one instance per Session rather than a single instance for all Sessions
* Changed std::map objects into std::unordered_map in KProcess
* Comments on enumeration values
2019-10-16 18:11:30 +05:30
◱ PixelyIon
ec71735ece
Fixes and Additions for HID support
...
The following things were fixed:
* KSharedMemory
* KSyncObject (and how waiting on them works)
* Inclusion of Headers
What was added:
* Transfer Memory
* svcSleepThread
2019-10-13 13:34:47 +05:30
◱ PixelyIon
f7effe86ae
libNX Applet Manager Initalization
...
This commit completes the 'am' initialization for libNX
2019-09-27 21:39:56 +05:30
◱ PixelyIon
a5d63c9bbb
Add reverse name lookup services for better debugging and fix bugs
2019-09-26 22:34:20 +05:30
Ryan Teal
45f4255ff6
Implement some appletOE calls
2019-09-26 16:37:24 +01:00
◱ PixelyIon
da74d8d78c
Some minor fixes
...
This fixes some files so release now works and removes the dependancy of "<cutils/ashmem.h>" as it isn't present on all NDK includes.
2019-09-25 15:02:17 +05:30
◱ PixelyIon
7ad2e11705
Milestone 3 - Services API
...
This commit adds the Services API and implements some services. It also changes the name of the application to Skyline and replaces the icon.
2019-09-25 02:28:25 +05:30
◱ PixelyIon
a54f5ff578
Milestone 2 - Memory & IPC Marshalling
...
This commit introduces a new memory model that supports true shared memory with separate permissions for remote and local processes, implements svcQueryMemory and completes svcGetInfo further, adds IPC support with the IpcRequest and IpcResponse classes.
2019-09-25 02:28:25 +05:30
◱ PixelyIon
9e1e06c64b
Milestone 1 - Processes & Threads
...
Reworks the API a fair bit and adds documentation to almost everything.
2019-09-25 02:28:25 +05:30
◱ PixelyIon
da55a1d9ba
Rearrange OS folder
2019-08-21 17:07:43 +05:30
Starlet Leonhart
7dd04afdcf
Code clean up by friendly neighborhood Cyuubi
2019-08-21 02:22:45 +05:30
◱ PixelyIon
9657064740
Fix 32-bit register reading/writing
...
Co-Authored-By: Ryan Teal <rynteal@protonmail.com>
2019-08-19 03:37:47 +05:30
Ryan Teal
9a36d5fcf9
Remove unused include in kernel.cpp
2019-08-18 15:32:52 +01:00
Ryan Teal
d4e2079474
Fix casts in cpu.cpp
2019-08-18 14:08:02 +01:00
◱ PixelyIon
342fee841f
Fix C++ entry and tiny cleanup
2019-08-18 18:31:32 +05:30
Ryan Teal
113bfd059e
Halt execution after unimplemented SVC
2019-08-18 12:40:07 +01:00
◱ PixelyIon
449f0a0248
Addition of Remapping and Unmapping to Memory class
2019-08-18 03:48:27 +05:30
◱ PixelyIon
92c1491a84
Native Code Execution (NCE)
...
It's finally here, we're executing code completely natively. This is something that would completely break the project if it wasn't possible.
2019-08-17 04:34:37 +05:30
Ryan Teal
182729b247
Add logcat to the logger
...
Shame, Pixelylon, shame.
2019-07-26 19:31:42 +01:00
◱ PixelyIon
3bdbe41c13
Fix: Crash if log file is missing + Crash on random interrupt
2019-07-25 02:31:31 +05:30
◱ PixelyIon
696ebde527
Rewrite C++ parts and UI update
...
This update took way way too long to create. However, it was worthwhile. :)
2019-07-25 01:49:43 +05:30
Ryan Teal
fd2bf8ebd5
Merge branch 'master' of https://github.com/Cyuubi/Lightswitch
2019-07-09 22:36:14 +01:00
Ryan Teal
4cd7c985f0
IPC Episode 1 - Prologue
2019-07-09 22:35:51 +01:00
Starlet Leonhart
18de764e96
Fix something I keep forgetting to do in unicorn.h
2019-07-05 12:33:31 -04:00
Ryan Teal
e44f7f8feb
Basic KObject implementation
2019-07-05 13:33:58 +01:00
Ryan Teal
0eef380781
Implement GetInfo #8 IsCurrentProcessBeingDebugged
2019-07-03 20:53:51 +01:00
◱ PixelyIon
15f8c4b5f0
Addition of a UI: Settings and NRO list
...
This update adds a minimal UI.
2019-07-03 04:49:45 +05:30
Starlet Leonhart
d4ddbe9b88
Add title ID in getinfo
2019-07-02 17:55:31 -04:00
Starlet Leonhart
be79abd213
Another minor code clean up, because I'm dumb
2019-07-02 17:51:34 -04:00
Starlet Leonhart
f10e4463fe
Clean up again
2019-07-02 17:48:42 -04:00
Ryan Teal
13b1354a00
Implement svcGetInfo
2019-07-02 22:45:34 +01:00
Starlet Leonhart
040121340a
Minor code cleanup
2019-07-02 17:43:49 -04:00
Ryan Teal
e108d4a0be
Implement svcOutputDebugString
2019-07-02 22:34:08 +01:00
Starlet Leonhart
80955679e0
Remove ARMv7 support, turns out I was talking out of my ass.
2019-07-02 17:32:20 -04:00
Starlet Leonhart
ca1eb1d7e3
Add ARMv7 libunicorn static library
2019-07-02 17:09:06 -04:00
Ryan Teal
f8605a417d
Add SVC handler
2019-07-02 21:04:52 +01:00
Ryan Teal
ffbcf0fb33
Add as include directory
2019-07-02 21:00:57 +01:00
Ryan Teal
8080760cd5
Remove unused forward declarations in cpu.cpp
2019-07-02 20:46:39 +01:00
Ryan Teal
5cece7daed
Fix Cyuubi's CPU implementation
2019-07-02 20:40:35 +01:00
Ryan Teal
67b2ee3ea5
Add TLS memory map
2019-07-02 16:30:43 +01:00
Ryan Teal
4310ffd4dd
Fix interrupt hook and memory maps
2019-06-30 22:07:10 +01:00
Starlet Leonhart
75c608fd25
Add CPU class
2019-06-30 12:42:55 -04:00
Ryan Teal
39b591bcfd
Move namespaces to core::
2019-06-30 16:00:17 +01:00
Ryan Teal
2f24f28084
An actual memory implementation
2019-06-30 15:39:56 +01:00
Ryan Teal
856f00bf7e
Clean up main source file
2019-06-30 15:04:22 +01:00
Ryan Teal
1142e397c6
Implement NRO loader
2019-06-30 14:26:57 +01:00
Starlet Leonhart
faad5a7c72
push some bullcrap
2019-06-29 12:13:36 -04:00
Starlet Leonhart
89346359cd
Port ARM64 unicorn sample
2019-06-29 10:21:59 -04:00
Starlet Leonhart
6ebee35104
Remove unneeded unicorn headers
2019-06-29 10:06:00 -04:00
◱ PixelyIon
875fe194f6
Structure Code and Link libunicorn
2019-06-29 19:05:24 +05:30
Starlet Leonhart
2e5d107f5d
add files, cannot figure out why native lib is broken
2019-06-28 20:35:14 -04:00