Skip to content

Commit 0c25993

Browse files
committed
Initial commit
0 parents  commit 0c25993

File tree

749 files changed

+70151
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

749 files changed

+70151
-0
lines changed

.build_counter

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1827

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
BasedOnStyle: WebKit

.clangd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Diagnostics:
2+
Suppress: unused-includes

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.github/workflows/build.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: build
2+
3+
on: [workflow_dispatch, push]
4+
5+
jobs:
6+
build:
7+
runs-on: self-hosted
8+
container: pixelkiri/devkitpro-alpine-switch:latest
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v3
12+
with:
13+
submodules: true
14+
- name: Build
15+
run: |
16+
make -j $(nproc)
17+
- name: Upload Artifacts
18+
uses: actions/upload-artifact@v2
19+
with:
20+
name: build
21+
path: |
22+
build/subsdk9
23+
build/subsdk9.nss
24+
build/subsdk9.npdm

.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Build directory
2+
build/
3+
Build/
4+
5+
# Prerequisites
6+
*.d
7+
8+
# Compiled Object files
9+
*.slo
10+
*.lo
11+
*.o
12+
*.obj
13+
14+
# Precompiled Headers
15+
*.gch
16+
*.pch
17+
18+
# Compiled Dynamic libraries
19+
*.so
20+
*.dylib
21+
*.dll
22+
23+
# Fortran module files
24+
*.mod
25+
*.smod
26+
27+
# Compiled Static libraries
28+
*.lai
29+
*.la
30+
*.a
31+
*.lib
32+
33+
# Executables
34+
*.exe
35+
*.out
36+
*.app
37+
38+
compile_commands.json
39+
.cache/
40+
build.sh
41+
.vscode/
42+
.clangd/
43+
.idea/
44+
cmake-build-debug/

.gitmodules

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
[submodule "lib/sead"]
2+
path = lib/sead
3+
url = https://github.com/open-ead/sead
4+
[submodule "NintendoSDK"]
5+
path = lib/NintendoSDK
6+
url = https://github.com/fruityloops1/nnheaders
7+
[submodule "lib/imgui"]
8+
path = lib/imgui
9+
url = https://github.com/ocornut/imgui
10+
branch = docking
11+
[submodule "server/Library/enet"]
12+
path = server/Library/enet
13+
url = https://github.com/lsalzman/enet
14+
[submodule "server/Library/LibNerve"]
15+
path = server/Library/LibNerve
16+
url = https://github.com/fruityloops1/LibNerve
17+
18+
[submodule "lib/enet-nx"]
19+
path = lib/enet-nx
20+
url = https://github.com/fruityloops1/enet-nx
21+
[submodule "server/Library/buddy_alloc"]
22+
path = server/Library/buddy_alloc
23+
url = https://github.com/spaskalev/buddy_alloc
24+
[submodule "server/Library/json"]
25+
path = server/Library/json
26+
url = https://github.com/nlohmann/json

CMakeLists.txt

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
cmake_minimum_required(VERSION 3.21)
2+
project(subsdk)
3+
4+
## Error if not using switch toolchain file
5+
if (NOT SWITCH)
6+
message(FATAL_ERROR "Not targeting switch, make sure to specify -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain.cmake")
7+
endif()
8+
9+
set(CMAKE_C_STANDARD 17)
10+
set(CMAKE_CXX_STANDARD 20)
11+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
12+
enable_language(ASM C CXX)
13+
14+
## Title Id
15+
set(CONFIG_TITLE_ID 0x010028600ebda000)
16+
add_compile_definitions(EXL_PROGRAM_ID=${CONFIG_TITLE_ID} EXL_LOAD_KIND=Module EXL_LOAD_KIND_ENUM=2 NNSDK IMGUI_USER_CONFIG="imgui_backend/nvn_imgui_config.h" private=public protected=public DEBUGMENU)
17+
18+
set(NN_SDK_MAJOR 4) # idk
19+
set(NN_SDK_MINOR 0) # idk
20+
set(NN_SDK_PATCH 0) # idk
21+
set(NN_SDK_TYPE "Release")
22+
set(NN_WARE_MAJOR 4) # idk
23+
set(NN_WARE_MINOR 0) # idk
24+
set(NN_WARE_PATCH 0) # idk
25+
26+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/module/subsdk9.json.template ${CMAKE_CURRENT_BINARY_DIR}/subsdk9.json)
27+
28+
add_subdirectory(${PROJECT_SOURCE_DIR}/lib/penet)
29+
30+
## Project sources
31+
set (INCLUDE_DIRS
32+
${PROJECT_SOURCE_DIR}/src/
33+
${PROJECT_SOURCE_DIR}/src/lib
34+
${PROJECT_SOURCE_DIR}/include
35+
${PROJECT_SOURCE_DIR}/lib/sead/include
36+
${PROJECT_SOURCE_DIR}/lib/NintendoSDK/include
37+
${PROJECT_SOURCE_DIR}/lib/NintendoSDK/include/nvn
38+
${PROJECT_SOURCE_DIR}/lib/imgui
39+
${PROJECT_SOURCE_DIR}/lib/enet-nx/include
40+
${PROJECT_SOURCE_DIR}/lib/penet/Include
41+
)
42+
include_directories(${INCLUDE_DIRS})
43+
44+
file(GLOB_RECURSE SOURCES_ASM ${PROJECT_SOURCE_DIR}/src/*.s)
45+
file(GLOB_RECURSE SOURCES_C ${PROJECT_SOURCE_DIR}/src/*.c)
46+
file(GLOB_RECURSE SOURCES_CXX ${PROJECT_SOURCE_DIR}/src/*.cpp)
47+
48+
file(GLOB IMGUI_SOURCES ${PROJECT_SOURCE_DIR}/lib/imgui/*.cpp)
49+
file(GLOB ENET_SOURCES ${PROJECT_SOURCE_DIR}/lib/enet-nx/source/*.c ${PROJECT_SOURCE_DIR}/lib/enet-nx/source/*.cpp)
50+
51+
## Include nx tools
52+
include(${CMAKE_SOURCE_DIR}/cmake/SwitchTools.cmake)
53+
54+
## subsdk9
55+
set(CMAKE_EXECUTABLE_SUFFIX ".nss")
56+
add_executable(subsdk9 ${SOURCES_ASM} ${SOURCES_C} ${SOURCES_CXX} ${IMGUI_SOURCES} ${ENET_SOURCES})
57+
target_link_libraries(subsdk9 PUBLIC penet)
58+
target_include_directories(penet PUBLIC ${INCLUDE_DIRS})
59+
60+
61+
## Prepare subsdk ld
62+
set(SUBSDK_LD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/module/subsdk9.ld)
63+
set(GAME_VERSION 110)
64+
set(SYMS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/syms/${GAME_VERSION}")
65+
66+
execute_process(
67+
COMMAND bash -c "find ${SYMS_PATH} -type f -name '*.sym' -exec cat {} + > ${CMAKE_BINARY_DIR}/syms.ld"
68+
)
69+
70+
execute_process(COMMAND uname OUTPUT_VARIABLE uname)
71+
if (uname MATCHES "^MINGW")
72+
string(REGEX REPLACE "^/([a-zA-Z])/" "\\1:/" SUBSDK_LD_PATH "${SUBSDK_LD_PATH}")
73+
endif ()
74+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/module/subsdk9.specs.template ${CMAKE_CURRENT_BINARY_DIR}/subsdk9.specs)
75+
76+
## Build nso & generate npdm
77+
add_nso_target_subsdk(subsdk9)
78+
set_target_properties(subsdk9 PROPERTIES CONFIG_JSON "${CMAKE_CURRENT_BINARY_DIR}/subsdk9.json")
79+
__generate_npdm(subsdk9)
80+
set_target_properties(subsdk9 PROPERTIES LINK_FLAGS "-specs ${CMAKE_BINARY_DIR}/subsdk9.specs -g ${ARCH} -nostartfiles -nostdlib")

0 commit comments

Comments
 (0)