Comments (6)
This is currently blocked on applet services. I may want to see if there is a way to register an existing process as an applet, or if I can launch processes through applet services and hide them from crash handling a different way.
from twili.
CreateSelfLibraryAppletCreatorForDevelop sounds promising, but it gives me error 0x7a880
on hardware (2.0.0 console). Might take some work to figure out if there's a way around that.
from twili.
If we're going to be having applet services launch our processes, there are a number of problems, for which to solve we will likely have to depend on Atmosphere-PM/LDR.
I don't see a way to get pm to not signal a crash event, unless we were willing to race NS, hoping we get to use pm:shell#ClearProcessNotificationFlag
before NS receives the crash event. This seems like a bad ideaβ’ to me and would likely be somewhat fragile. We'll have to either make Atmosphere-PM hide the crash event, or look into whether there's any way to get ns
to not trigger a fatal error upon receiving a crash event. ns:dev
sounds promising.
from twili.
I've gotten nx-hbmenu to work under Twili by using a combination of two processes. Turns out, applet services don't much care who calls OpenApplicationProxy
. Because of this, we can use one process to open the application proxy, retrieve IDebugFunctions
, and close the application proxy. Then, we can launch the main application (in this case, nx-hbmenu). The application will wait for the "acquire foreground" message. We can cause this message to be sent by using IDebugFunctions
to OpenMainApplication
, and then calling IApplicationAccessor#RequestForApplicationToGetForeground
.
Problems:
- qlaunch gets confused by there being an application running
- exiting the application freezes up UI
- I'm not really sure how
OpenApplicationProxy
actually works. Does it create a newIntegratedApplication
object every time? Does theIApplicationAccessor
returned byIDebugFunctions#OpenMainApplication
access a different application object, or is it the same one every time shared by multiple processes opening the application proxy?- Because of this, I'm not sure when exactly I can
RequestForApplicationToGetForeground
and have it work
- Because of this, I'm not sure when exactly I can
from twili.
Temporary solution, for 3.0.0+:
- Override creport with a stub to notify Twili when a process crashes instead of causing a fatal error.
- Override album with a stub ("shadowbeast")
- Control Mode: The first instance of shadowbeast runs in control mode, where it receives messages from Twili that tell it to launch more shadowbeast instances whenever Twili receives an NRO to be run in applet mode.
- Host Mode: Any instances of shadowbeast launched by the control instance will connect to Twili, query the size of the NRO, use
svcMapPhysicalMemory
to allocate a buffer, and then have Twili map in the NRO. Shadowbeast host mode combines the function of Twili's process creation and HBABIShim.
from twili.
Finally works π
from twili.
Related Issues (20)
- Attemt to open hbmenu leads to crash HOT 6
- Non-working on 10.2.0
- Fatal Error when opening HB menu with Twili+Twili HBL running
- Fatal error when opening Homebrew Menu with 1.4.0 preview 2
- Fatal on boot: FW 11.0.1 Atmosphere 0.17.1 HOT 1
- twib run hangs on execute
- twili and incognito mode(empty serial number)? HOT 2
- HOS 12.0.2 HOT 1
- ugh wtf? this is supposed to be u8 according to SciresM
- Missing steps in getting Windows driver installed HOT 2
- Request: Run nsp format sysmodules HOT 1
- pull - support reading nand HOT 1
- Don't crash system if nro has non-zero exit code HOT 1
- FS Calls don't work while running a sysmodule through Twili/Twib HOT 1
- libusb nut drivers broken after trying to install twili HOT 1
- GDB monitor wait failures
- Can't run nros as sysmodules in current version HOT 2
- Linux: Twibd doesn't release socket properly on unclean exit (such as USB permission error) HOT 1
- Fatal on boot with sys ver 4.1.0
- Could not open pipe. GLE=2 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from twili.