/* Copyright (C) 2025 OnionHEN / LightningMods This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, see . */ #pragma once #include #define PUBLIC_TEST 0 #define PRE_RELEASE 0 /* * The ShellUI hook diagnostics are logged unconditionally. They used to sit * behind a SHELL_DEBUG macro that followed NDEBUG, which meant a release build * silently dropped the records that explain why a HomeUI profile did not match * or why a hook declined to fire — the exact questions a bug report asks. * * ShellUI is an injected system process, so the volume is real. Gate it at run * time instead of compile time: `[logging] level` in config.ini, or the * "Log output level" selector in the Toolbox. Most of these records are DEBUG, * so they need level=debug; the failure paths are WARN/ERROR and show at the * default level. */ #define libSceKernelHandle 0x2001 #define KERNEL_DLSYM(handle, sym) \ (*(void**)&sym=(void*)kernel_dynlib_dlsym(-1, handle, #sym)) typedef void* ScePthread;