mirror of
https://github.com/XorTroll/uLaunch
synced 2024-11-22 20:03:08 +00:00
Add master libnx as a temporary submodule, fix weird apm bugs with QDaemon
This commit is contained in:
parent
1f0b9782de
commit
4e9fc02180
11 changed files with 40 additions and 42 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -4,3 +4,6 @@
|
||||||
[submodule "libstratosphere"]
|
[submodule "libstratosphere"]
|
||||||
path = libstratosphere
|
path = libstratosphere
|
||||||
url = https://github.com/Atmosphere-NX/libstratosphere
|
url = https://github.com/Atmosphere-NX/libstratosphere
|
||||||
|
[submodule "master-libnx"]
|
||||||
|
path = master-libnx
|
||||||
|
url = https://github.com/switchbrew/libnx
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
#include <q_Include.hpp>
|
|
||||||
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
void __appExit(void);
|
|
||||||
void NORETURN __nx_exit(Result rc, LoaderReturnFn retaddr);
|
|
||||||
|
|
||||||
void NORETURN __libnx_exit(int rc)
|
|
||||||
{
|
|
||||||
// Call destructors.
|
|
||||||
void __libc_fini_array(void);
|
|
||||||
__libc_fini_array();
|
|
||||||
|
|
||||||
// Clean up services.
|
|
||||||
__appExit();
|
|
||||||
|
|
||||||
// 3.0.0 libnx fucked up _appletExitProcess() process-exiting call, and fixed it in later commits.
|
|
||||||
// Adding this manually until a new version is released with the fix, then this will be removed.
|
|
||||||
|
|
||||||
// Explicitly initialize applet again, since applet-based exiting needs this, and since it isn't added in 3.0.0, we wrap it here
|
|
||||||
// TODO: remove this when next libnx releases
|
|
||||||
appletInitialize();
|
|
||||||
|
|
||||||
__nx_exit(0, envGetExitFuncPtr());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -45,7 +45,7 @@ LIBS := -lnx
|
||||||
# list of directories containing libraries, this must be the top level containing
|
# list of directories containing libraries, this must be the top level containing
|
||||||
# include and lib
|
# include and lib
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
LIBDIRS := $(PORTLIBS) $(LIBNX)
|
LIBDIRS := $(PORTLIBS) $(CURDIR)/../master-libnx/nx
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
|
@ -5,6 +5,10 @@ extern "C"
|
||||||
{
|
{
|
||||||
u32 __nx_applet_type = AppletType_LibraryApplet;
|
u32 __nx_applet_type = AppletType_LibraryApplet;
|
||||||
u32 __nx_applet_exit_mode = 2;
|
u32 __nx_applet_exit_mode = 2;
|
||||||
|
|
||||||
|
void __appExit(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hb::TargetInput hb_input;
|
hb::TargetInput hb_input;
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
"title_id_range_min": "0x010000000000100B",
|
"title_id_range_min": "0x010000000000100B",
|
||||||
"title_id_range_max": "0x010000000000100B",
|
"title_id_range_max": "0x010000000000100B",
|
||||||
"main_thread_stack_size": "0x100000",
|
"main_thread_stack_size": "0x100000",
|
||||||
"main_thread_priority": 49,
|
"main_thread_priority": 44,
|
||||||
"default_cpu_id": 3,
|
"default_cpu_id": 0,
|
||||||
"process_category": 0,
|
"process_category": 0,
|
||||||
"pool_partition": 1,
|
"pool_partition": 0,
|
||||||
"is_64_bit": true,
|
"is_64_bit": true,
|
||||||
"address_space_type": 1,
|
"address_space_type": 1,
|
||||||
"is_retail": true,
|
"is_retail": true,
|
||||||
"filesystem_access":{
|
"filesystem_access": {
|
||||||
"permissions": "0xFFFFFFFFFFFFFFFF"
|
"permissions": "0xFFFFFFFFFFFFFFFF"
|
||||||
},
|
},
|
||||||
"service_host": [
|
"service_host": [
|
||||||
|
@ -24,10 +24,10 @@
|
||||||
{
|
{
|
||||||
"type": "kernel_flags",
|
"type": "kernel_flags",
|
||||||
"value": {
|
"value": {
|
||||||
"highest_thread_priority": 63,
|
"highest_thread_priority": 59,
|
||||||
"lowest_thread_priority": 16,
|
"lowest_thread_priority": 28,
|
||||||
"lowest_cpu_id": 3,
|
"highest_cpu_id": 2,
|
||||||
"highest_cpu_id": 3
|
"lowest_cpu_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -146,7 +146,18 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "min_kernel_version",
|
"type": "min_kernel_version",
|
||||||
"value": "0x0030"
|
"value": "0x30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "handle_table_size",
|
||||||
|
"value": 512
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "debug_flags",
|
||||||
|
"value": {
|
||||||
|
"allow_debug": true,
|
||||||
|
"force_debug": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -45,7 +45,7 @@ LIBS := -lnx -lpu -lfreetype -lSDL2_mixer -lopusfile -lopus -lmodplug -lmpg123 -
|
||||||
# list of directories containing libraries, this must be the top level containing
|
# list of directories containing libraries, this must be the top level containing
|
||||||
# include and lib
|
# include and lib
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
LIBDIRS := $(PORTLIBS) $(LIBNX) $(CURDIR)/../Plutonium/Plutonium/Output
|
LIBDIRS := $(PORTLIBS) $(CURDIR)/../master-libnx/nx $(CURDIR)/../Plutonium/Plutonium/Output
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
|
@ -55,9 +55,6 @@ namespace qmenu
|
||||||
net::Finalize();
|
net::Finalize();
|
||||||
nsExit();
|
nsExit();
|
||||||
accountExit();
|
accountExit();
|
||||||
|
|
||||||
// Explicitly call appletExit (due to bad handling in 3.0.0 libnx)
|
|
||||||
appletExit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +113,9 @@ int main()
|
||||||
if(smode == am::QMenuStartMode::MenuApplicationSuspended) qapp->Show();
|
if(smode == am::QMenuStartMode::MenuApplicationSuspended) qapp->Show();
|
||||||
else qapp->ShowWithFadeIn();
|
else qapp->ShowWithFadeIn();
|
||||||
|
|
||||||
|
// Exit RomFs manually, Plutonium won't do it for us since we're initializing it manually
|
||||||
|
romfsExit();
|
||||||
|
|
||||||
delete[] app_buf;
|
delete[] app_buf;
|
||||||
qmenu::Exit();
|
qmenu::Exit();
|
||||||
}
|
}
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -4,6 +4,7 @@ export Q_VERSION := 0.2
|
||||||
.PHONY: all dev clean
|
.PHONY: all dev clean
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
@$(MAKE) -C master-libnx/
|
||||||
@$(MAKE) -C libstratosphere/
|
@$(MAKE) -C libstratosphere/
|
||||||
@$(MAKE) -C SystemAppletQDaemon/
|
@$(MAKE) -C SystemAppletQDaemon/
|
||||||
@$(MAKE) -C LibraryAppletQMenu/
|
@$(MAKE) -C LibraryAppletQMenu/
|
||||||
|
@ -28,6 +29,7 @@ dev: setdev all
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -rf $(CURDIR)/SdOut
|
@rm -rf $(CURDIR)/SdOut
|
||||||
|
@$(MAKE) clean -C master-libnx/
|
||||||
@$(MAKE) clean -C libstratosphere/
|
@$(MAKE) clean -C libstratosphere/
|
||||||
@$(MAKE) clean -C SystemAppletQDaemon/
|
@$(MAKE) clean -C SystemAppletQDaemon/
|
||||||
@$(MAKE) clean -C LibraryAppletQMenu/
|
@$(MAKE) clean -C LibraryAppletQMenu/
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/../libstratosphere/config/templates/stratosphere.mk
|
include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/../libstratosphere/config/templates/stratosphere.mk
|
||||||
|
|
||||||
CXXFLAGS += -fexceptions -DQ_VERSION=\"$(Q_VERSION)\"
|
APMWRAPS := -Wl,-wrap,apmInitialize -Wl,-wrap,apmSetPerformanceConfiguration -Wl,-wrap,apmExit
|
||||||
|
|
||||||
|
CXXFLAGS += -fexceptions -DQ_VERSION=\"$(Q_VERSION)\" $(APMWRAPS)
|
||||||
|
LDFLAGS += $(APMWRAPS)
|
||||||
|
|
||||||
ifeq ($(Q_DEV),1)
|
ifeq ($(Q_DEV),1)
|
||||||
CXXFLAGS += -DQ_DEV
|
CXXFLAGS += -DQ_DEV
|
||||||
|
|
|
@ -45,7 +45,7 @@ LIBS := -lnx
|
||||||
# list of directories containing libraries, this must be the top level containing
|
# list of directories containing libraries, this must be the top level containing
|
||||||
# include and lib
|
# include and lib
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
LIBDIRS := $(PORTLIBS) $(LIBNX)
|
LIBDIRS := $(PORTLIBS) $(CURDIR)/../master-libnx/nx
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
1
master-libnx
Submodule
1
master-libnx
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit f043307e7f580f6507f4285c898c6ac725bb364f
|
Loading…
Reference in a new issue