SuperTuxKart 1.5 upstream source (from official release tarball)

This commit is contained in:
Benjamin
2026-06-11 20:04:02 +02:00
commit 2957e51aaa
8551 changed files with 1801800 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
const child_process = require("child_process");
const fs = require("fs");
const file = fs.readFileSync(process.argv[2], "utf8");
console.log(
file.replace(
/ \(supertuxkart \+ (0x[0-9a-f]{1,16})\)/g,
(existing, offset) =>
existing +
" => " +
child_process
.execFileSync("aarch64-none-elf-addr2line", [
"-e",
"./bin/supertuxkart",
"-f",
"-p",
"-C",
"-a",
offset,
])
.toString("utf8")
.trim()
)
);
Executable
+48
View File
@@ -0,0 +1,48 @@
#!/bin/bash
OLD_PWD="$(pwd)"
SWITCH_DIR=$(realpath "$(dirname "$0")")
STK_DIR=$(dirname "${SWITCH_DIR}")
echo "Compiling STK"
if [[ ! -d "${STK_DIR}/cmake_build" ]]; then
mkdir "${STK_DIR}/cmake_build"
fi
cd "${STK_DIR}/cmake_build"
"${DEVKITPRO}/portlibs/switch/bin/aarch64-none-elf-cmake" -G"Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=/ -DNO_SHADERC=on \
../
make -j$(nproc) || exit 1
make install DESTDIR=./install || exit 1
# Build nro (executable for switch)
"${SWITCH_DIR}/package.sh"
echo "Building package"
rm -rf sdcard
mkdir sdcard
# Move data over
mv install/share/supertuxkart/data sdcard/stk-data
# Add executable
mkdir sdcard/switch
mv bin/stk.nro sdcard/switch/stk.nro
echo "Compressing"
# Zip up actual release:
cd sdcard
ZIP_PATH="${STK_DIR}/cmake_build/bin/SuperTuxKart-${PROJECT_VERSION}-switch.zip"
if [[ -f "${ZIP_PATH}" ]]; then
rm "${ZIP_PATH}"
fi
zip -r "${ZIP_PATH}" .
# Recover old pwd
cd $OLD_PWD
echo "Done. Package available at ${ZIP_PATH}"
+2
View File
@@ -0,0 +1,2 @@
nacptool --create "SuperTuxKart" "Many People" "${PROJECT_VERSION}" control.nacp
elf2nro bin/supertuxkart.elf bin/stk.nro --nacp=control.nacp --icon=../switch/supertuxkart_256.jpg
+25
View File
@@ -0,0 +1,25 @@
cmake_minimum_required(VERSION 3.2)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
set(CMAKE_CROSSCOMPILING 1)
set(DEVKITPRO /opt/devkitpro)
set(TOOL_PREFIX ${DEVKITPRO}/devkitA64/bin/aarch64-none-elf-)
set(CMAKE_ASM_COMPILER ${TOOL_PREFIX}gcc CACHE PATH "")
set(CMAKE_C_COMPILER ${TOOL_PREFIX}gcc CACHE PATH "")
set(CMAKE_CXX_COMPILER ${TOOL_PREFIX}g++ CACHE PATH "")
set(CMAKE_LINKER ${TOOL_PREFIX}g++ CACHE PATH "")
set(CMAKE_AR ${TOOL_PREFIX}ar CACHE PATH "")
set(CMAKE_STRIP ${TOOL_PREFIX}strip CACHE PATH "")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
SET(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Shared libs not available" )
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
export DEVKITPRO=/opt/devkitpro
export PORTLIBS_ROOT=${DEVKITPRO}/portlibs
export PATH=${DEVKITPRO}/tools/bin:${DEVKITPRO}/devkitA64/bin:$PATH
export TOOL_PREFIX=aarch64-none-elf-
export AR=${TOOL_PREFIX}gcc-ar
export RANLIB=${TOOL_PREFIX}gcc-ranlib
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
SCRIPTDIR="${BASH_SOURCE%/*}"
if [ -z "$1" ]; then
echo "No platform specified." 1>&2
exit 1
fi
PLATFORM="$1"
source ${SCRIPTDIR}/${PLATFORM}vars.sh
echo "${PORTLIBS_PREFIX}"
+38
View File
@@ -0,0 +1,38 @@
include(/opt/devkitpro/devkita64.cmake)
set (DKA_SWITCH_C_FLAGS "-D__SWITCH__ -march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -ftls-model=local-exec -ffunction-sections -fdata-sections")
set(CMAKE_C_FLAGS "${DKA_SWITCH_C_FLAGS}" CACHE STRING "")
set(CMAKE_CXX_FLAGS "${DKA_SWITCH_C_FLAGS}" CACHE STRING "")
set(CMAKE_ASM_FLAGS "${DKA_SWITCH_C_FLAGS}" CACHE STRING "")
set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=${DEVKITPRO}/libnx/switch.specs")
set(CMAKE_FIND_ROOT_PATH
${DEVKITPRO}/devkitA64
${DEVKITPRO}/tools
${DEVKITPRO}/portlibs/switch
${DEVKITPRO}/libnx
)
# Set pkg-config for the same
find_program(PKG_CONFIG_EXECUTABLE NAMES aarch64-none-elf-pkg-config HINTS "${DEVKITPRO}/portlibs/switch/bin")
if (NOT PKG_CONFIG_EXECUTABLE)
message(WARNING "Could not find aarch64-none-elf-pkg-config: try installing switch-pkg-config")
endif()
set(NSWITCH TRUE)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(NX_ROOT ${DEVKITPRO}/libnx)
set(NX_STANDARD_LIBRARIES "${NX_ROOT}/lib/libnx.a")
set(CMAKE_C_STANDARD_LIBRARIES "${NX_STANDARD_LIBRARIES}" CACHE STRING "")
set(CMAKE_CXX_STANDARD_LIBRARIES "${NX_STANDARD_LIBRARIES}" CACHE STRING "")
set(CMAKE_ASM_STANDARD_LIBRARIES "${NX_STANDARD_LIBRARIES}" CACHE STRING "")
#for some reason cmake (3.14.3) doesn't appreciate having \" here
set(NX_STANDARD_INCLUDE_DIRECTORIES "${NX_ROOT}/include")
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES "${NX_STANDARD_INCLUDE_DIRECTORIES}" CACHE STRING "")
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "${NX_STANDARD_INCLUDE_DIRECTORIES}" CACHE STRING "")
set(CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES "${NX_STANDARD_INCLUDE_DIRECTORIES}" CACHE STRING "")
+11
View File
@@ -0,0 +1,11 @@
. "${BASH_SOURCE%/*}"/devkita64.sh
export PORTLIBS_PREFIX=${DEVKITPRO}/portlibs/switch
export PATH=$PORTLIBS_PREFIX/bin:$PATH
export ARCH="-march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -fPIC -ftls-model=local-exec"
export CFLAGS="${ARCH} -O2 -ffunction-sections -fdata-sections"
export CXXFLAGS="${CFLAGS}"
export CPPFLAGS="-D__SWITCH__ -I ${PORTLIBS_PREFIX}/include -isystem ${DEVKITPRO}/libnx/include"
export LDFLAGS="${ARCH} -L${PORTLIBS_PREFIX}/lib -L${DEVKITPRO}/libnx/lib"
export LIBS="-lnx"
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB