Commit Graph

2061 Commits

Author SHA1 Message Date
◱ PixelyIon 4a72704c4d Associate with NRO files
This commit adds the ability to open NRO files directly from a file browser rather than the emulator itself.
2019-12-11 17:31:12 +00:00
◱ PixelyIon 8d1545aabf Addition of Dark Theme and Compatibility with Android 10 Dark Mode
This commit adds support for Android Night Mode and adds in a dark theme for the UI.
2019-12-11 17:31:12 +00:00
◱ PixelyIon 4ab9af04ff Add ability to open a ROM directly and Make URI Persistent
Before ROMs needed to be opened by setting the path, now they can be directly opened using the file picker. In addition, Document Tree URIs are now set to be persistent rather than being revoked after reboot.
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 e4dc602f4d Migrate to SAF APIs for file access
This commit moves from conventional file access to using URIs and such provided by the SAF APIs.
2019-12-11 17:31:12 +00:00
◱ PixelyIon 9db0c20c92 Move from Java to Kotlin
This commit converts all Java code to Kotlin and improves the structure and performance of most rewritten parts.
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
◱ PixelyIon 8aea45170f Move to GitHub Actions for CI
This commit adds a GitHub Actions Workflow for Continuous Integration.
2019-12-11 22:32:47 +05:30
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
bylaws 2e0014ba7c Fix External Storage Access on Android 10 (#10)
Android 10 and above block access to the legacy java file APIs on external storage without the 'android:requestLegacyExternalStorage' flag set. This is a temporary measure while we adopt newer APIs.
2019-11-09 13:39:40 +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 a01941ac5b Improve README.md 2019-09-25 02:49:15 +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 62cb561888 Implement sharing of logs using Hastebin 2019-08-29 18:10:39 +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
Starlet Leonhart 985f2e67a2 Merge remote-tracking branch 'origin/master' 2019-08-20 15:07:17 -04:00
◱ PixelyIon d3e3563d6d Retroactive .gitignore 2019-08-21 00:35:51 +05:30
Starlet Leonhart 7dc8400292 Add it back again. 2019-08-20 15:05:13 -04:00
Starlet Leonhart 4eafb20be2 Remove idea folder real quick 2019-08-20 15:04:50 -04:00
◱ PixelyIon 30da6fb163 Improve .gitignore 2019-08-20 23:32:27 +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 3855daa849 Rename to LightSwitch and emu.lightswitch 2019-08-18 12:57:55 +05:30
◱ PixelyIon dd51a7d71d Merge branch 'master' of https://github.com/Cyuubi/Lightswitch 2019-08-18 03:48:34 +05:30
◱ PixelyIon 449f0a0248 Addition of Remapping and Unmapping to Memory class 2019-08-18 03:48:27 +05:30
Starlet Leonhart 47d3a2de9d
Update README 2019-08-16 19:40:27 -04:00
◱ 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