Controller and TV oriented UI library for PC、PS4、PSV and Nintendo Switch.
⚠️ Warning: the project is a WIP
Check the daily builds for what borealis looks like.
To build for Switch, a standard development environment must first be set up. In order to do so, refer to the Getting Started guide.
cmake -B build_switch -DPLATFORM_SWITCH=ON
make -C build_switch borealis_demo.nro -j$(nproc)
To build for PC, the following components are required:
Please refer to the usual sources of information for your particular operating system. Usually the commands needed to build this project will look like this:
cmake -B build_pc -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release
make -C build_pc -j$(nproc)
sudo apt-get install g++-mingw-w64-x86-64-posix
cmake -B build_mingw -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="library/cmake/MinGWCross.cmake"
make -C build_mingw -j$(nproc)
Also, please note that the resources
folder must be available in the working directory, otherwise the program will fail to find the shaders.
# generate key for codesigning (optional)
openssl req -nodes -newkey rsa:2048 -keyout cert.key -out cert.crt -x509 -days 365 -subj '//CN=borealis' \
-extensions 'v3_req' -addext 'extendedKeyUsage=codeSigning'
openssl pkcs12 -export -nodes -out winrt/key.pfx -inkey cert.key -in cert.crt -passout pass:
# add xmake repo
xmake repo -a local https://github.com/zeromake/xrepo.git
xmake f -c -y --winrt=y --window=sdl --driver=d3d11
xmake b -y demo
*.suprx
files (PVR_PSP2) to psv/module
System Settings/HENkaku
We only need:
libGLESv2.suprx
libgpu_es4_ext.suprx
libIMGEGL.suprx
libpvrPSP2_WSEGL.suprx
Overclock ES4(GPU) to 166MHz or higher for a smoother experience.
cmake -B build_psv -DPLATFORM_PSV=ON
make -C build_psv borealis_demo.vpk -j$(nproc)
borealis_demo.vpk
we built before.nc -kl -w 3 9999
in Your computer. (Working as a logging server)make -j$(nproc) && \
mv borealis_demo.self eboot.bin && \
curl --ftp-method nocwd -T eboot.bin ftp://192.168.1.140:1337/ux0:/app/BRLS00000/ && \
echo launch BRLS00000 | nc 192.168.1.140 1338
192.168.1.140 is the ip address of my psv
BRLS00000 is the demo app ID For me using PSMLogUSB with psmlogusb-client is more stable than PrincessLog.
You need install pacbrew-packages(SDL2 provided by pacbrew-packages supports OpenGL ES2)
source /opt/pacbrew/ps4/openorbis/ps4vars.sh
openorbis-cmake -B build_ps4 -DPLATFORM_PS4=ON
make -C build_ps4 -j$(nproc)
There is a docker image for building ps4 homebrew: xfangfang/pacbrew:231021
docker run --rm -v $(pwd):/src/ xfangfang/pacbrew:231021 "openorbis-cmake -B build_ps4 -DPLATFORM_PS4=ON && make -C build_ps4 -j$(nproc)"
Sending pkg to ps4:
make -j$(nproc) && curl --ftp-method nocwd -T *.pkg ftp://<your_ps4_ip>:2121/data/pkg/
Enable klog TTY Redirect in GoldHEN, then connect to ps4 klog:
nc <your_ps4_ip> 3232
# build libromfs generator
./build_libromfs_generator.sh
cd android-project
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
export ANDROID_SDK_ROOT=~/Library/Android/sdk
# Once built, the APK will be located in the app/build/outputs/apk/debug directory by default
./gradlew assembleDebug
# Directly install the APK (requires the device or emulator to be connected via adb)
./gradlew installDebug
# build libromfs generator
./build_libromfs_generator.sh
# 1. Generate a Xcode project
# IOS_CODE_SIGN_IDENTITY: code is not signed when IOS_CODE_SIGN_IDENTITY is empty
# IOS_GUI_IDENTIFIER: optional, default is com.borealis.demo
cmake -B build-ios -G Xcode -DPLATFORM_IOS=ON -DPLATFORM=OS64 -DDEPLOYMENT_TARGET=13.0 \
-DIOS_CODE_SIGN_IDENTITY="Your identity" \
-DIOS_GUI_IDENTIFIER="custom.app.id.here"
# 2. open project in Xcode
open build-ios/*.xcodeproj
# 3. Set up Team and Bundle Identifiers in Xcode, then connect devices to run.
cmake -B build-ios -G Xcode -DPLATFORM_IOS=ON -DPLATFORM=SIMULATORARM64 -DDEPLOYMENT_TARGET=13.0
# Build
cmake --build build-ios
# Open simulator
open -a Simulator
# After simulator is booted, install app
xcrun simctl install booted build-ios/Debug-iphonesimulator/borealis_demo.app
-std=c++1z
). You also need to remove -fno-rtti
and -fno-exceptions
if you have themresources
folder to the root of your projectOr you can start a new project from the template