Compare commits
8 Commits
ef0a1f5d91
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c366c70b8 | |||
| 1a4dc6f517 | |||
| 99594e4241 | |||
| c2248b9a74 | |||
| 4addd8752d | |||
| 4a816f9f43 | |||
| 6c60067ba7 | |||
| bc3c5a8f9d |
22
.ci/android.sh
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
export NDK_CCACHE=$(which ccache)
|
||||||
|
[ "$GITHUB_REPOSITORY" = "citra-emu/citra-canary" ] &&
|
||||||
|
BUILD_FLAVOR=canary ||
|
||||||
|
BUILD_FLAVOR=nightly
|
||||||
|
|
||||||
|
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
|
||||||
|
export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
|
||||||
|
base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd src/android
|
||||||
|
chmod +x ./gradlew
|
||||||
|
./gradlew assemble${BUILD_FLAVOR}Release
|
||||||
|
./gradlew bundle${BUILD_FLAVOR}Release
|
||||||
|
|
||||||
|
ccache -s -v
|
||||||
|
|
||||||
|
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
|
||||||
|
rm "${ANDROID_KEYSTORE_FILE}"
|
||||||
|
fi
|
||||||
37
.ci/clang-format.sh
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
if grep -nrI '\s$' src *.yml *.txt *.md Doxyfile .gitignore .gitmodules .ci* dist/*.desktop \
|
||||||
|
dist/*.svg dist/*.xml; then
|
||||||
|
echo Trailing whitespace found, aborting
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Default clang-format points to default 3.5 version one
|
||||||
|
CLANG_FORMAT=clang-format-15
|
||||||
|
$CLANG_FORMAT --version
|
||||||
|
|
||||||
|
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
|
||||||
|
# Get list of every file modified in this pull request
|
||||||
|
files_to_lint="$(git diff --name-only --diff-filter=ACMRTUXB $COMMIT_RANGE | grep '^src/[^.]*[.]\(cpp\|h\)$' || true)"
|
||||||
|
else
|
||||||
|
# Check everything for branch pushes
|
||||||
|
files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Turn off tracing for this because it's too verbose
|
||||||
|
set +x
|
||||||
|
|
||||||
|
for f in $files_to_lint; do
|
||||||
|
d=$(diff -u "$f" <($CLANG_FORMAT "$f") || true)
|
||||||
|
if ! [ -z "$d" ]; then
|
||||||
|
echo "!!! $f not compliant to coding style, here is the fix:"
|
||||||
|
echo "$d"
|
||||||
|
fail=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
if [ "$fail" = 1 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
15
.ci/ios.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -GNinja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_SYSTEM_NAME=iOS \
|
||||||
|
-DCMAKE_OSX_ARCHITECTURES=arm64 \
|
||||||
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
|
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||||
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON
|
||||||
|
ninja
|
||||||
|
|
||||||
|
ccache -s -v
|
||||||
34
.ci/linux.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
if [ "$TARGET" = "appimage" ]; then
|
||||||
|
# Compile the AppImage we distribute with Clang.
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_LINKER=/etc/bin/ld.lld)
|
||||||
|
# Bundle required QT wayland libraries
|
||||||
|
export EXTRA_QT_PLUGINS="waylandcompositor"
|
||||||
|
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
|
||||||
|
else
|
||||||
|
# For the linux-fresh verification target, verify compilation without PCH as well.
|
||||||
|
export EXTRA_CMAKE_FLAGS=(-DCITRA_USE_PRECOMPILED_HEADERS=OFF)
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||||
|
"${EXTRA_CMAKE_FLAGS[@]}" \
|
||||||
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
|
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||||
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||||
|
-DUSE_DISCORD_PRESENCE=ON
|
||||||
|
ninja
|
||||||
|
|
||||||
|
if [ "$TARGET" = "appimage" ]; then
|
||||||
|
ninja bundle
|
||||||
|
# TODO: Our AppImage environment currently uses an older ccache version without the verbose flag.
|
||||||
|
ccache -s
|
||||||
|
else
|
||||||
|
ccache -s -v
|
||||||
|
fi
|
||||||
|
|
||||||
|
ctest -VV -C Release
|
||||||
43
.ci/macos-universal.sh
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
ARTIFACTS_LIST=($ARTIFACTS)
|
||||||
|
|
||||||
|
BUNDLE_DIR=build/bundle
|
||||||
|
mkdir build
|
||||||
|
|
||||||
|
# Set up the base artifact to combine into.
|
||||||
|
BASE_ARTIFACT=${ARTIFACTS_LIST[0]}
|
||||||
|
BASE_ARTIFACT_ARCH="${BASE_ARTIFACT##*-}"
|
||||||
|
mv $BASE_ARTIFACT $BUNDLE_DIR
|
||||||
|
|
||||||
|
# Executable binary paths that need to be combined.
|
||||||
|
BIN_PATHS=(citra citra-room citra-qt.app/Contents/MacOS/citra-qt)
|
||||||
|
|
||||||
|
# Dylib paths that need to be combined.
|
||||||
|
IFS=$'\n'
|
||||||
|
DYLIB_PATHS=($(cd $BUNDLE_DIR && find . -name '*.dylib'))
|
||||||
|
unset IFS
|
||||||
|
|
||||||
|
# Combine all of the executable binaries and dylibs.
|
||||||
|
for OTHER_ARTIFACT in "${ARTIFACTS_LIST[@]:1}"; do
|
||||||
|
OTHER_ARTIFACT_ARCH="${OTHER_ARTIFACT##*-}"
|
||||||
|
|
||||||
|
for BIN_PATH in "${BIN_PATHS[@]}"; do
|
||||||
|
lipo -create -output $BUNDLE_DIR/$BIN_PATH $BUNDLE_DIR/$BIN_PATH $OTHER_ARTIFACT/$BIN_PATH
|
||||||
|
done
|
||||||
|
|
||||||
|
for DYLIB_PATH in "${DYLIB_PATHS[@]}"; do
|
||||||
|
# Only merge if the libraries do not have conflicting arches, otherwise it will fail.
|
||||||
|
DYLIB_INFO=`file $BUNDLE_DIR/$DYLIB_PATH`
|
||||||
|
OTHER_DYLIB_INFO=`file $OTHER_ARTIFACT/$DYLIB_PATH`
|
||||||
|
if ! [[ "$DYLIB_INFO" =~ "$OTHER_ARTIFACT_ARCH" ]] && ! [[ "$OTHER_DYLIB_INFO" =~ "$BASE_ARTIFACT_ARCH" ]]; then
|
||||||
|
lipo -create -output $BUNDLE_DIR/$DYLIB_PATH $BUNDLE_DIR/$DYLIB_PATH $OTHER_ARTIFACT/$DYLIB_PATH
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
# Re-sign executables and bundles after combining.
|
||||||
|
APP_PATHS=(citra citra-room citra-qt.app)
|
||||||
|
for APP_PATH in "${APP_PATHS[@]}"; do
|
||||||
|
codesign --deep -fs - $BUNDLE_DIR/$APP_PATH
|
||||||
|
done
|
||||||
21
.ci/macos.sh
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -GNinja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_OSX_ARCHITECTURES="$TARGET" \
|
||||||
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
|
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||||
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||||
|
-DUSE_DISCORD_PRESENCE=ON
|
||||||
|
ninja
|
||||||
|
ninja bundle
|
||||||
|
|
||||||
|
ccache -s -v
|
||||||
|
|
||||||
|
CURRENT_ARCH=`arch`
|
||||||
|
if [ "$TARGET" = "$CURRENT_ARCH" ]; then
|
||||||
|
ctest -VV -C Release
|
||||||
|
fi
|
||||||
80
.ci/pack.sh
Executable file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
# Determine the full revision name.
|
||||||
|
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
|
||||||
|
GITREV="`git show -s --format='%h'`"
|
||||||
|
REV_NAME="citra-$OS-$TARGET-$GITDATE-$GITREV"
|
||||||
|
|
||||||
|
# Determine the name of the release being built.
|
||||||
|
if [[ "$GITHUB_REF_NAME" =~ ^canary- ]] || [[ "$GITHUB_REF_NAME" =~ ^nightly- ]]; then
|
||||||
|
RELEASE_NAME=$(echo $GITHUB_REF_NAME | cut -d- -f1)
|
||||||
|
else
|
||||||
|
RELEASE_NAME=head
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Archive and upload the artifacts.
|
||||||
|
mkdir artifacts
|
||||||
|
|
||||||
|
function pack_artifacts() {
|
||||||
|
ARTIFACTS_PATH="$1"
|
||||||
|
|
||||||
|
# Set up root directory for archive.
|
||||||
|
mkdir "$REV_NAME"
|
||||||
|
if [ -f "$ARTIFACTS_PATH" ]; then
|
||||||
|
mv "$ARTIFACTS_PATH" "$REV_NAME"
|
||||||
|
|
||||||
|
# Use file extension to differentiate archives.
|
||||||
|
FILENAME=$(basename "$ARTIFACT")
|
||||||
|
EXTENSION="${FILENAME##*.}"
|
||||||
|
ARCHIVE_NAME="$REV_NAME.$EXTENSION"
|
||||||
|
else
|
||||||
|
mv "$ARTIFACTS_PATH"/* "$REV_NAME"
|
||||||
|
|
||||||
|
ARCHIVE_NAME="$REV_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create .zip/.tar.gz
|
||||||
|
if [ "$OS" = "windows" ]; then
|
||||||
|
ARCHIVE_FULL_NAME="$ARCHIVE_NAME.zip"
|
||||||
|
powershell Compress-Archive "$REV_NAME" "$ARCHIVE_FULL_NAME"
|
||||||
|
elif [ "$OS" = "android" ]; then
|
||||||
|
ARCHIVE_FULL_NAME="$ARCHIVE_NAME.zip"
|
||||||
|
zip -r "$ARCHIVE_FULL_NAME" "$REV_NAME"
|
||||||
|
else
|
||||||
|
ARCHIVE_FULL_NAME="$ARCHIVE_NAME.tar.gz"
|
||||||
|
tar czvf "$ARCHIVE_FULL_NAME" "$REV_NAME"
|
||||||
|
fi
|
||||||
|
mv "$ARCHIVE_FULL_NAME" artifacts/
|
||||||
|
|
||||||
|
if [ -z "$SKIP_7Z" ]; then
|
||||||
|
# Create .7z
|
||||||
|
ARCHIVE_FULL_NAME="$ARCHIVE_NAME.7z"
|
||||||
|
mv "$REV_NAME" "$RELEASE_NAME"
|
||||||
|
7z a "$ARCHIVE_FULL_NAME" "$RELEASE_NAME"
|
||||||
|
mv "$ARCHIVE_FULL_NAME" artifacts/
|
||||||
|
|
||||||
|
# Clean up created release artifacts directory.
|
||||||
|
rm -rf "$RELEASE_NAME"
|
||||||
|
else
|
||||||
|
# Clean up created rev artifacts directory.
|
||||||
|
rm -rf "$REV_NAME"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -n "$UNPACKED" ]; then
|
||||||
|
# Copy the artifacts to be uploaded unpacked.
|
||||||
|
for ARTIFACT in build/bundle/*; do
|
||||||
|
FILENAME=$(basename "$ARTIFACT")
|
||||||
|
EXTENSION="${FILENAME##*.}"
|
||||||
|
|
||||||
|
mv "$ARTIFACT" "artifacts/$REV_NAME.$EXTENSION"
|
||||||
|
done
|
||||||
|
elif [ -n "$PACK_INDIVIDUALLY" ]; then
|
||||||
|
# Pack and upload the artifacts one-by-one.
|
||||||
|
for ARTIFACT in build/bundle/*; do
|
||||||
|
pack_artifacts "$ARTIFACT"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# Pack all of the artifacts into a single archive.
|
||||||
|
pack_artifacts build/bundle
|
||||||
|
fi
|
||||||
20
.ci/source.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
|
||||||
|
GITREV="`git show -s --format='%h'`"
|
||||||
|
REV_NAME="citra-unified-source-${GITDATE}-${GITREV}"
|
||||||
|
|
||||||
|
COMPAT_LIST='dist/compatibility_list/compatibility_list.json'
|
||||||
|
|
||||||
|
mkdir artifacts
|
||||||
|
|
||||||
|
pip3 install git-archive-all
|
||||||
|
touch "${COMPAT_LIST}"
|
||||||
|
git describe --abbrev=0 --always HEAD > GIT-COMMIT
|
||||||
|
git describe --tags HEAD > GIT-TAG || echo 'unknown' > GIT-TAG
|
||||||
|
git archive-all --include "${COMPAT_LIST}" --include GIT-COMMIT --include GIT-TAG --force-submodules artifacts/"${REV_NAME}.tar"
|
||||||
|
|
||||||
|
cd artifacts/
|
||||||
|
xz -T0 -9 "${REV_NAME}.tar"
|
||||||
|
sha256sum "${REV_NAME}.tar.xz" > "${REV_NAME}.tar.xz.sha256sum"
|
||||||
|
cd ..
|
||||||
14
.ci/transifex.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
echo -e "\e[1m\e[33mBuild tools information:\e[0m"
|
||||||
|
cmake --version
|
||||||
|
gcc -v
|
||||||
|
tx --version
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF
|
||||||
|
make translation
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
cd dist/languages
|
||||||
|
tx push -s
|
||||||
17
.ci/windows.sh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh -ex
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DENABLE_QT_TRANSLATION=ON \
|
||||||
|
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||||
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||||
|
-DUSE_DISCORD_PRESENCE=ON
|
||||||
|
ninja
|
||||||
|
ninja bundle
|
||||||
|
|
||||||
|
ccache -s -v
|
||||||
|
|
||||||
|
ctest -VV -C Release || echo "::error ::Test error occurred on Windows build"
|
||||||
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
dist/languages/* linguist-vendored
|
||||||
|
dist/qt_themes/* linguist-vendored
|
||||||
|
externals/* linguist-vendored
|
||||||
|
*.h linguist-language=cpp
|
||||||
62
.gitignore
vendored
@@ -1,14 +1,50 @@
|
|||||||
# ---> CMake
|
# Build directory
|
||||||
CMakeLists.txt.user
|
[Bb]uild*/
|
||||||
CMakeCache.txt
|
doc-build/
|
||||||
CMakeFiles
|
build-*/
|
||||||
CMakeScripts
|
|
||||||
Testing
|
|
||||||
Makefile
|
|
||||||
cmake_install.cmake
|
|
||||||
install_manifest.txt
|
|
||||||
compile_commands.json
|
|
||||||
CTestTestfile.cmake
|
|
||||||
_deps
|
|
||||||
build
|
|
||||||
|
|
||||||
|
# Generated source files
|
||||||
|
src/common/scm_rev.cpp
|
||||||
|
.travis.descriptor.json
|
||||||
|
|
||||||
|
# Project/editor files
|
||||||
|
*.swp
|
||||||
|
*.kdev4
|
||||||
|
.idea/
|
||||||
|
.vs/
|
||||||
|
.vscode/
|
||||||
|
.cache/
|
||||||
|
.kdev4/
|
||||||
|
cmake-build-debug/
|
||||||
|
cmake-build-release/
|
||||||
|
CMakeLists.txt.user*
|
||||||
|
|
||||||
|
# *nix related
|
||||||
|
# Common convention for backup or temporary files
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Visual Studio CMake settings
|
||||||
|
CMakeSettings.json
|
||||||
|
|
||||||
|
# OSX global filetypes
|
||||||
|
# Created by Finder or Spotlight in directories for various OS functionality (indexing, etc)
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
|
||||||
|
# Windows global filetypes
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Python files
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Flatpak generated files
|
||||||
|
.flatpak-builder/
|
||||||
|
repo/
|
||||||
|
|
||||||
|
# GitHub Actions generated files
|
||||||
|
.ccache/
|
||||||
|
node_modules/
|
||||||
|
VULKAN_SDK/
|
||||||
|
|||||||
93
.gitmodules
vendored
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
[submodule "boost"]
|
||||||
|
path = externals/boost
|
||||||
|
url = https://github.com/PabloMK7/ext-boost.git
|
||||||
|
[submodule "nihstro"]
|
||||||
|
path = externals/nihstro
|
||||||
|
url = https://github.com/neobrain/nihstro.git
|
||||||
|
[submodule "soundtouch"]
|
||||||
|
path = externals/soundtouch
|
||||||
|
url = https://codeberg.org/soundtouch/soundtouch.git
|
||||||
|
[submodule "catch2"]
|
||||||
|
path = externals/catch2
|
||||||
|
url = https://github.com/catchorg/Catch2
|
||||||
|
[submodule "dynarmic"]
|
||||||
|
path = externals/dynarmic
|
||||||
|
url = https://github.com/PabloMK7/dynarmic.git
|
||||||
|
[submodule "xbyak"]
|
||||||
|
path = externals/xbyak
|
||||||
|
url = https://github.com/herumi/xbyak.git
|
||||||
|
[submodule "fmt"]
|
||||||
|
path = externals/fmt
|
||||||
|
url = https://github.com/fmtlib/fmt.git
|
||||||
|
[submodule "enet"]
|
||||||
|
path = externals/enet
|
||||||
|
url = https://github.com/lsalzman/enet.git
|
||||||
|
[submodule "inih"]
|
||||||
|
path = externals/inih/inih
|
||||||
|
url = https://github.com/benhoyt/inih.git
|
||||||
|
[submodule "libressl"]
|
||||||
|
path = externals/libressl
|
||||||
|
url = https://github.com/PabloMK7/ext-libressl-portable.git
|
||||||
|
[submodule "libusb"]
|
||||||
|
path = externals/libusb/libusb
|
||||||
|
url = https://github.com/libusb/libusb.git
|
||||||
|
[submodule "cubeb"]
|
||||||
|
path = externals/cubeb
|
||||||
|
url = https://github.com/mozilla/cubeb
|
||||||
|
[submodule "discord-rpc"]
|
||||||
|
path = externals/discord-rpc
|
||||||
|
url = https://github.com/PabloMK7/discord-rpc.git
|
||||||
|
[submodule "cpp-jwt"]
|
||||||
|
path = externals/cpp-jwt
|
||||||
|
url = https://github.com/arun11299/cpp-jwt.git
|
||||||
|
[submodule "teakra"]
|
||||||
|
path = externals/teakra
|
||||||
|
url = https://github.com/wwylele/teakra.git
|
||||||
|
[submodule "lodepng"]
|
||||||
|
path = externals/lodepng/lodepng
|
||||||
|
url = https://github.com/lvandeve/lodepng.git
|
||||||
|
[submodule "zstd"]
|
||||||
|
path = externals/zstd
|
||||||
|
url = https://github.com/facebook/zstd.git
|
||||||
|
[submodule "libyuv"]
|
||||||
|
path = externals/libyuv
|
||||||
|
url = https://github.com/lemenkov/libyuv.git
|
||||||
|
[submodule "sdl2"]
|
||||||
|
path = externals/sdl2/SDL
|
||||||
|
url = https://github.com/libsdl-org/SDL
|
||||||
|
[submodule "cryptopp-cmake"]
|
||||||
|
path = externals/cryptopp-cmake
|
||||||
|
url = https://github.com/abdes/cryptopp-cmake.git
|
||||||
|
[submodule "cryptopp"]
|
||||||
|
path = externals/cryptopp
|
||||||
|
url = https://github.com/weidai11/cryptopp.git
|
||||||
|
[submodule "dds-ktx"]
|
||||||
|
path = externals/dds-ktx
|
||||||
|
url = https://github.com/septag/dds-ktx
|
||||||
|
[submodule "openal-soft"]
|
||||||
|
path = externals/openal-soft
|
||||||
|
url = https://github.com/kcat/openal-soft
|
||||||
|
[submodule "glslang"]
|
||||||
|
path = externals/glslang
|
||||||
|
url = https://github.com/KhronosGroup/glslang
|
||||||
|
[submodule "vma"]
|
||||||
|
path = externals/vma
|
||||||
|
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
|
||||||
|
[submodule "vulkan-headers"]
|
||||||
|
path = externals/vulkan-headers
|
||||||
|
url = https://github.com/KhronosGroup/Vulkan-Headers
|
||||||
|
[submodule "sirit"]
|
||||||
|
path = externals/sirit
|
||||||
|
url = https://github.com/PabloMK7/sirit
|
||||||
|
[submodule "faad2"]
|
||||||
|
path = externals/faad2/faad2
|
||||||
|
url = https://github.com/knik0/faad2
|
||||||
|
[submodule "library-headers"]
|
||||||
|
path = externals/library-headers
|
||||||
|
url = https://github.com/PabloMK7/ext-library-headers.git
|
||||||
|
[submodule "libadrenotools"]
|
||||||
|
path = externals/libadrenotools
|
||||||
|
url = https://github.com/bylaws/libadrenotools
|
||||||
|
[submodule "oaknut"]
|
||||||
|
path = externals/oaknut
|
||||||
|
url = https://github.com/merryhime/oaknut.git
|
||||||
@@ -15,7 +15,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modul
|
|||||||
include(DownloadExternals)
|
include(DownloadExternals)
|
||||||
include(CMakeDependentOption)
|
include(CMakeDependentOption)
|
||||||
|
|
||||||
project(citra LANGUAGES C CXX ASM)
|
project(Lucina3DS LANGUAGES C CXX ASM)
|
||||||
|
|
||||||
# Some submodules like to pick their own default build type if not specified.
|
# Some submodules like to pick their own default build type if not specified.
|
||||||
# Make sure we default to Release build type always, unless the generator has custom types.
|
# Make sure we default to Release build type always, unless the generator has custom types.
|
||||||
@@ -88,12 +88,12 @@ option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF)
|
|||||||
# Compile options
|
# Compile options
|
||||||
CMAKE_DEPENDENT_OPTION(COMPILE_WITH_DWARF "Add DWARF debugging information" ${IS_DEBUG_BUILD} "MINGW" OFF)
|
CMAKE_DEPENDENT_OPTION(COMPILE_WITH_DWARF "Add DWARF debugging information" ${IS_DEBUG_BUILD} "MINGW" OFF)
|
||||||
option(ENABLE_LTO "Enable link time optimization" ${DEFAULT_ENABLE_LTO})
|
option(ENABLE_LTO "Enable link time optimization" ${DEFAULT_ENABLE_LTO})
|
||||||
option(CITRA_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
option(LUCINA3DS_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
||||||
option(CITRA_WARNINGS_AS_ERRORS "Enable warnings as errors" ON)
|
option(LUCINA3DS_WARNINGS_AS_ERRORS "Enable warnings as errors" ON)
|
||||||
|
|
||||||
include(CitraHandleSystemLibs)
|
include(CitraHandleSystemLibs)
|
||||||
|
|
||||||
if (CITRA_USE_PRECOMPILED_HEADERS)
|
if (LUCINA3DS_USE_PRECOMPILED_HEADERS)
|
||||||
message(STATUS "Using Precompiled Headers.")
|
message(STATUS "Using Precompiled Headers.")
|
||||||
set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
|
set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
|
||||||
|
|
||||||
@@ -136,21 +136,21 @@ endif()
|
|||||||
# Sanity check : Check that all submodules are present
|
# Sanity check : Check that all submodules are present
|
||||||
# =======================================================================
|
# =======================================================================
|
||||||
|
|
||||||
function(check_submodules_present)
|
#function(check_submodules_present)
|
||||||
file(READ "${PROJECT_SOURCE_DIR}/.gitmodules" gitmodules)
|
# file(READ "${PROJECT_SOURCE_DIR}/.gitmodules" gitmodules)
|
||||||
string(REGEX MATCHALL "path *= *[^ \t\r\n]*" gitmodules ${gitmodules})
|
# string(REGEX MATCHALL "path *= *[^ \t\r\n]*" gitmodules ${gitmodules})
|
||||||
foreach(module ${gitmodules})
|
# foreach(module ${gitmodules})
|
||||||
string(REGEX REPLACE "path *= *" "" module ${module})
|
# string(REGEX REPLACE "path *= *" "" module ${module})
|
||||||
if (NOT EXISTS "${PROJECT_SOURCE_DIR}/${module}/.git")
|
# if (NOT EXISTS "${PROJECT_SOURCE_DIR}/${module}/.git")
|
||||||
message(SEND_ERROR "Git submodule ${module} not found."
|
# message(SEND_ERROR "Git submodule ${module} not found."
|
||||||
"Please run: git submodule update --init --recursive")
|
# "Please run: git submodule update --init --recursive")
|
||||||
endif()
|
# endif()
|
||||||
endforeach()
|
# endforeach()
|
||||||
endfunction()
|
#endfunction()
|
||||||
if (EXISTS "${PROJECT_SOURCE_DIR}/.git/objects")
|
#if (EXISTS "${PROJECT_SOURCE_DIR}/.git/objects")
|
||||||
# only check submodules when source is obtained via Git
|
# only check submodules when source is obtained via Git
|
||||||
check_submodules_present()
|
# check_submodules_present()
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
|
configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
|
||||||
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
|
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
|
||||||
@@ -434,11 +434,11 @@ add_subdirectory(src)
|
|||||||
add_subdirectory(dist/installer)
|
add_subdirectory(dist/installer)
|
||||||
|
|
||||||
|
|
||||||
# Set citra-qt project or citra project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
# Set lucina3ds-qt project or lucina3ds project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
||||||
if(ENABLE_QT)
|
if(ENABLE_QT)
|
||||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT citra-qt)
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT lucina3ds-qt)
|
||||||
else()
|
else()
|
||||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT citra)
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT lucina3ds)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Create target for outputting distributable bundles.
|
# Create target for outputting distributable bundles.
|
||||||
@@ -446,13 +446,13 @@ endif()
|
|||||||
if (NOT ANDROID AND NOT IOS)
|
if (NOT ANDROID AND NOT IOS)
|
||||||
include(BundleTarget)
|
include(BundleTarget)
|
||||||
if (ENABLE_SDL2_FRONTEND)
|
if (ENABLE_SDL2_FRONTEND)
|
||||||
bundle_target(citra)
|
bundle_target(lucina3ds)
|
||||||
endif()
|
endif()
|
||||||
if (ENABLE_QT)
|
if (ENABLE_QT)
|
||||||
bundle_target(citra-qt)
|
bundle_target(lucina3ds-qt)
|
||||||
endif()
|
endif()
|
||||||
if (ENABLE_DEDICATED_ROOM)
|
if (ENABLE_DEDICATED_ROOM)
|
||||||
bundle_target(citra-room)
|
bundle_target(lucina3ds-room)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -464,22 +464,22 @@ endif()
|
|||||||
# http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
|
# http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
|
||||||
# http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
# http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra-qt.desktop"
|
install(FILES "${PROJECT_SOURCE_DIR}/dist/lucina3ds-qt.desktop"
|
||||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.svg"
|
install(FILES "${PROJECT_SOURCE_DIR}/dist/lucina3ds.svg"
|
||||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps")
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps")
|
||||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.xml"
|
install(FILES "${PROJECT_SOURCE_DIR}/dist/lucina3ds.xml"
|
||||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mime/packages")
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mime/packages")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if(ENABLE_SDL2)
|
if(ENABLE_SDL2)
|
||||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.6"
|
install(FILES "${PROJECT_SOURCE_DIR}/dist/lucina3ds.6"
|
||||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_QT)
|
if (ENABLE_QT)
|
||||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra-qt.6"
|
install(FILES "${PROJECT_SOURCE_DIR}/dist/lucina3ds-qt.6"
|
||||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ if (BUNDLE_TARGET_EXECUTE)
|
|||||||
${extra_linuxdeploy_args}
|
${extra_linuxdeploy_args}
|
||||||
--plugin checkrt
|
--plugin checkrt
|
||||||
--executable "${executable_path}"
|
--executable "${executable_path}"
|
||||||
--icon-file "${source_path}/dist/citra.svg"
|
--icon-file "${source_path}/dist/lucina3ds.svg"
|
||||||
--desktop-file "${source_path}/dist/${executable_name}.desktop"
|
--desktop-file "${source_path}/dist/${executable_name}.desktop"
|
||||||
--appdir "${appdir_path}"
|
--appdir "${appdir_path}"
|
||||||
RESULT_VARIABLE linuxdeploy_appdir_result)
|
RESULT_VARIABLE linuxdeploy_appdir_result)
|
||||||
@@ -282,7 +282,7 @@ else()
|
|||||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bundle/dist/")
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bundle/dist/")
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET bundle
|
TARGET bundle
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dist/icon.png" "${CMAKE_BINARY_DIR}/bundle/dist/citra.png")
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/dist/icon.png" "${CMAKE_BINARY_DIR}/bundle/dist/lucina3ds.png")
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET bundle
|
TARGET bundle
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/license.txt" "${CMAKE_BINARY_DIR}/bundle/")
|
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/license.txt" "${CMAKE_BINARY_DIR}/bundle/")
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ if (DEFINED ENV{CI})
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# regex capture the string nightly or canary into CMAKE_MATCH_1
|
# regex capture the string nightly or canary into CMAKE_MATCH_1
|
||||||
string(REGEX MATCH "citra-emu/citra-?(.*)" OUTVAR ${BUILD_REPOSITORY})
|
string(REGEX MATCH "lucina3ds-emu/lucina3ds-?(.*)" OUTVAR ${BUILD_REPOSITORY})
|
||||||
if ("${CMAKE_MATCH_COUNT}" GREATER 0)
|
if ("${CMAKE_MATCH_COUNT}" GREATER 0)
|
||||||
# capitalize the first letter of each word in the repo name.
|
# capitalize the first letter of each word in the repo name.
|
||||||
string(REPLACE "-" ";" REPO_NAME_LIST ${CMAKE_MATCH_1})
|
string(REPLACE "-" ";" REPO_NAME_LIST ${CMAKE_MATCH_1})
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
**The Contributor's Guide has moved to [the wiki](https://github.com/citra-emu/citra/wiki/Contributing).**
|
|
||||||
2
Doxyfile
@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
|
|||||||
# title of most generated pages and in a few other places.
|
# title of most generated pages and in a few other places.
|
||||||
# The default value is: My Project.
|
# The default value is: My Project.
|
||||||
|
|
||||||
PROJECT_NAME = Citra
|
PROJECT_NAME = Lucina3DS
|
||||||
|
|
||||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
|
|||||||
BIN
dist/Lucina3DS.png
vendored
Normal file
|
After Width: | Height: | Size: 22 KiB |
10
dist/citra-room.desktop
vendored
@@ -1,10 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Type=Application
|
|
||||||
Name=Citra Room
|
|
||||||
Comment=Multiplayer room host for Citra
|
|
||||||
Icon=citra
|
|
||||||
TryExec=citra-room
|
|
||||||
Exec=citra-room %f
|
|
||||||
Categories=Game;Emulator;
|
|
||||||
Keywords=3DS;Nintendo
|
|
||||||
BIN
dist/citra.ico
vendored
|
Before Width: | Height: | Size: 361 KiB |
2
dist/citra.svg
vendored
|
Before Width: | Height: | Size: 17 KiB |
9638
dist/compatibility_list/compatibility_list.json
vendored
BIN
dist/doc-icon.png
vendored
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
dist/icon.png
vendored
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 22 KiB |
2
dist/installer/CMakeLists.txt
vendored
@@ -11,7 +11,7 @@ endif()
|
|||||||
|
|
||||||
set(BUILD_DIR "${CMAKE_BINARY_DIR}/installer")
|
set(BUILD_DIR "${CMAKE_BINARY_DIR}/installer")
|
||||||
set(DIST_DIR "${BUILD_DIR}/dist")
|
set(DIST_DIR "${BUILD_DIR}/dist")
|
||||||
set(TARGET_FILE "${DIST_DIR}/citra-setup-${PLATFORM}")
|
set(TARGET_FILE "${DIST_DIR}/lucina3ds-setup-${PLATFORM}")
|
||||||
|
|
||||||
file(MAKE_DIRECTORY "${BUILD_DIR}" "${DIST_DIR}")
|
file(MAKE_DIRECTORY "${BUILD_DIR}" "${DIST_DIR}")
|
||||||
|
|
||||||
|
|||||||
4
dist/languages/.tx/config
vendored
@@ -1,13 +1,13 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[o:citra:p:citra:r:emulator]
|
[o:lucina3ds:p:lucina3ds:r:emulator]
|
||||||
file_filter = <lang>.ts
|
file_filter = <lang>.ts
|
||||||
source_file = en.ts
|
source_file = en.ts
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = QT
|
type = QT
|
||||||
|
|
||||||
[o:citra:p:citra:r:android]
|
[o:lucina3ds:p:lucina3ds:r:android]
|
||||||
file_filter = ../../src/android/app/src/main/res/values-<lang>/strings.xml
|
file_filter = ../../src/android/app/src/main/res/values-<lang>/strings.xml
|
||||||
source_file = ../../src/android/app/src/main/res/values/strings.xml
|
source_file = ../../src/android/app/src/main/res/values/strings.xml
|
||||||
type = ANDROID
|
type = ANDROID
|
||||||
|
|||||||
13704
dist/languages/da_DK.ts
vendored
13712
dist/languages/de.ts
vendored
13680
dist/languages/zh_CN.ts
vendored
13682
dist/languages/zh_TW.ts
vendored
14
dist/citra-qt.6 → dist/lucina3ds-qt.6
vendored
@@ -1,22 +1,22 @@
|
|||||||
.Dd November 22 2016
|
.Dd November 22 2016
|
||||||
.Dt citra-qt 6
|
.Dt lucina3ds-qt 6
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm Citra-Qt
|
.Nm Lucina3DS-Qt
|
||||||
.Nd Nintendo 3DS Emulator/Debugger (Qt)
|
.Nd Nintendo 3DS Emulator/Debugger (Qt)
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm citra-qt
|
.Nm Lucina3DS-qt
|
||||||
.Op Ar file
|
.Op Ar file
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
Citra is an experimental open-source Nintendo 3DS emulator/debugger.
|
Lucina3DS is an experimental open-source Nintendo 3DS emulator/debugger.
|
||||||
.Pp
|
.Pp
|
||||||
.Nm citra-qt
|
.Nm lucina3ds-qt
|
||||||
is the Qt implementation.
|
is the Qt implementation.
|
||||||
.Sh FILES
|
.Sh FILES
|
||||||
.Bl -tag -width Ds
|
.Bl -tag -width Ds
|
||||||
.It Pa $XDG_DATA_HOME/citra-emu
|
.It Pa $XDG_DATA_HOME/lucina3ds
|
||||||
Emulator storage.
|
Emulator storage.
|
||||||
.It Pa $XDG_CONFIG_HOME/citra-emu
|
.It Pa $XDG_CONFIG_HOME/lucina3ds
|
||||||
Configuration files.
|
Configuration files.
|
||||||
.El
|
.El
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=Citra
|
Name=Lucina3DS
|
||||||
GenericName=3DS Emulator
|
GenericName=3DS Emulator
|
||||||
GenericName[fr]=Émulateur 3DS
|
GenericName[fr]=Émulateur 3DS
|
||||||
Comment=Nintendo 3DS video game console emulator
|
Comment=Nintendo 3DS video game console emulator
|
||||||
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
|
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
|
||||||
Icon=citra
|
Icon=lucina3ds
|
||||||
TryExec=citra-qt
|
TryExec=lucina3ds-qt
|
||||||
Exec=citra-qt %f
|
Exec=lucina3ds-qt %f
|
||||||
Categories=Game;Emulator;Qt;
|
Categories=Game;Emulator;Qt;
|
||||||
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
|
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
|
||||||
Keywords=3DS;Nintendo;
|
Keywords=3DS;Nintendo;
|
||||||
10
dist/lucina3ds-room.desktop
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=Lucina3DS Room
|
||||||
|
Comment=Multiplayer room host for Lucina3DS
|
||||||
|
Icon=lucina3ds
|
||||||
|
TryExec=lucina3ds-room
|
||||||
|
Exec=lucina3ds-room %f
|
||||||
|
Categories=Game;Emulator;
|
||||||
|
Keywords=3DS;Nintendo
|
||||||
10
dist/citra.6 → dist/lucina3ds.6
vendored
@@ -1,11 +1,11 @@
|
|||||||
.Dd September 13 2024
|
.Dd September 13 2024
|
||||||
.Dt citra 6
|
.Dt lucina3ds 6
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm Citra
|
.Nm Lucina3DS
|
||||||
.Nd Nintendo 3DS Emulator/Debugger (SDL)
|
.Nd Nintendo 3DS Emulator/Debugger (SDL)
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm citra
|
.Nm lucina3ds
|
||||||
.Op Ar options
|
.Op Ar options
|
||||||
.Op Ar file
|
.Op Ar file
|
||||||
.Sh OPTIONS
|
.Sh OPTIONS
|
||||||
@@ -31,9 +31,9 @@ Shows syntax help and exits
|
|||||||
.It Fl v , Fl Fl version
|
.It Fl v , Fl Fl version
|
||||||
Describes the installed version and exits
|
Describes the installed version and exits
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
Citra is an experimental open-source Nintendo 3DS emulator/debugger.
|
Lucina3DS is an experimental open-source Nintendo 3DS emulator/debugger.
|
||||||
.Pp
|
.Pp
|
||||||
.Nm citra
|
.Nm lucina3ds
|
||||||
is the Simple DirectMedia Layer (SDL) implementation.
|
is the Simple DirectMedia Layer (SDL) implementation.
|
||||||
.Sh FILES
|
.Sh FILES
|
||||||
.Bl -tag -width Ds
|
.Bl -tag -width Ds
|
||||||
8
dist/citra.desktop → dist/lucina3ds.desktop
vendored
@@ -1,14 +1,14 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Version=1.0
|
Version=1.0
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=Citra
|
Name=Lucina3DS
|
||||||
GenericName=3DS Emulator
|
GenericName=3DS Emulator
|
||||||
GenericName[fr]=Émulateur 3DS
|
GenericName[fr]=Émulateur 3DS
|
||||||
Comment=Nintendo 3DS video game console emulator
|
Comment=Nintendo 3DS video game console emulator
|
||||||
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
|
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
|
||||||
Icon=citra
|
Icon=lucina3ds
|
||||||
TryExec=citra
|
TryExec=lucina3ds-qt
|
||||||
Exec=citra %f
|
Exec=lucina3ds-qt %f
|
||||||
Categories=Game;Emulator;
|
Categories=Game;Emulator;
|
||||||
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
|
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
|
||||||
Keywords=3DS;Nintendo;
|
Keywords=3DS;Nintendo;
|
||||||
BIN
dist/lucina3ds.ico
vendored
Normal file
|
After Width: | Height: | Size: 264 KiB |
131
dist/lucina3ds.svg
vendored
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="Lucina3DS_G.svg"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
inkscape:export-filename="Lucina3DS.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xml:space="preserve"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:zoom="1.2753906"
|
||||||
|
inkscape:cx="270.8974"
|
||||||
|
inkscape:cy="256.00001"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1380"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" /><defs
|
||||||
|
id="defs1"><inkscape:path-effect
|
||||||
|
effect="spiro"
|
||||||
|
id="path-effect12"
|
||||||
|
is_visible="true"
|
||||||
|
lpeversion="1" /><linearGradient
|
||||||
|
id="linearGradient8"
|
||||||
|
inkscape:collect="always"><stop
|
||||||
|
style="stop-color:#fef600;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop9" /><stop
|
||||||
|
style="stop-color:#ff8803;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10" /></linearGradient><inkscape:path-effect
|
||||||
|
effect="spiro"
|
||||||
|
id="path-effect1"
|
||||||
|
is_visible="true"
|
||||||
|
lpeversion="1" /><inkscape:path-effect
|
||||||
|
effect="circle_with_radius"
|
||||||
|
id="path-effect6"
|
||||||
|
is_visible="true"
|
||||||
|
lpeversion="1" /><linearGradient
|
||||||
|
id="linearGradient1"
|
||||||
|
inkscape:collect="always"><stop
|
||||||
|
style="stop-color:#fef600;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop1" /><stop
|
||||||
|
style="stop-color:#ff8803;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop2" /></linearGradient><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1"
|
||||||
|
id="linearGradient2"
|
||||||
|
x1="142.00873"
|
||||||
|
y1="142.00873"
|
||||||
|
x2="369.99124"
|
||||||
|
y2="369.99124"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.1264159,0,0,1.1264159,-32.362465,-32.362465)" /><inkscape:path-effect
|
||||||
|
effect="spiro"
|
||||||
|
id="path-effect1-7"
|
||||||
|
is_visible="true"
|
||||||
|
lpeversion="1" /><inkscape:path-effect
|
||||||
|
effect="spiro"
|
||||||
|
id="path-effect12-2"
|
||||||
|
is_visible="true"
|
||||||
|
lpeversion="1" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient8"
|
||||||
|
id="linearGradient13"
|
||||||
|
x1="222.62624"
|
||||||
|
y1="166.19441"
|
||||||
|
x2="294.93878"
|
||||||
|
y2="238.50694"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.77232939,0,0,0.77232939,58.767238,59.784916)" /></defs><g
|
||||||
|
inkscape:label="图层 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"><rect
|
||||||
|
style="mix-blend-mode:normal;fill:url(#linearGradient2);fill-rule:evenodd;stroke:none;stroke-width:8.75079;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect1"
|
||||||
|
width="461.48184"
|
||||||
|
height="461.48184"
|
||||||
|
x="25.259001"
|
||||||
|
y="25.259001"
|
||||||
|
rx="20"
|
||||||
|
ry="20" /><path
|
||||||
|
style="display:inline;fill:#ffffff;fill-opacity:0.999969;stroke-width:6;stroke-linejoin:round;paint-order:fill markers stroke"
|
||||||
|
d="m 256.39204,108.98622 c 2.318,9.14731 5.47166,18.08268 9.40888,26.6585 12.86653,28.02509 34.12047,52.40001 41.5559,82.32772 3.61286,14.54182 3.68319,30.22381 -1.62595,44.23561 -2.65457,7.00589 -6.63536,13.53227 -11.82978,18.93109 -5.19442,5.39883 -11.61188,9.65255 -18.69128,12.10436 -12.47119,4.31915 -26.62823,2.79237 -38.41961,-3.1363 -7.99311,-4.01891 -15.00816,-10.00609 -20.1073,-17.3573 -5.09913,-7.35121 -8.25739,-16.05943 -8.90342,-24.98267 -0.63444,-8.76308 1.12172,-17.55976 3.90867,-25.89205 2.78695,-8.33228 6.59253,-16.27949 10.20466,-24.28865 9.26015,-20.5325 17.29654,-41.5932 25.09035,-62.72588 3.17557,-8.61046 6.3119,-17.23539 9.40888,-25.87443 z"
|
||||||
|
id="path1"
|
||||||
|
inkscape:path-effect="#path-effect1"
|
||||||
|
inkscape:original-d="m 256.39204,108.98622 c 0,0 6.27259,18.29505 9.40888,26.6585 3.1363,8.36345 27.70394,55.1465 41.5559,82.32772 13.85197,27.18121 -21.43134,50.1807 -32.14701,75.27106 -10.71568,25.09035 -25.61307,-2.61358 -38.41961,-3.1363 -12.80653,-0.52271 -19.60183,-27.70393 -29.01072,-42.33997 -9.40888,-14.63604 9.40889,-33.19244 14.11333,-50.1807 4.70444,-16.98826 16.98826,-42.33997 25.09035,-62.72588 8.10209,-20.38592 9.40888,-25.87443 9.40888,-25.87443 z"
|
||||||
|
transform="matrix(1.2947843,0,0,1.2947843,-78.054433,-75.464863)" /><path
|
||||||
|
style="fill:url(#linearGradient13);stroke-width:6;stroke-linejoin:round;paint-order:fill markers stroke"
|
||||||
|
d="m 256.39204,108.98622 c 2.318,9.14731 5.47166,18.08268 9.40888,26.6585 12.86653,28.02509 34.12047,52.40001 41.5559,82.32772 3.61286,14.54182 3.68319,30.22381 -1.62595,44.23561 -2.65457,7.00589 -6.63536,13.53227 -11.82978,18.93109 -5.19442,5.39883 -11.61188,9.65255 -18.69128,12.10436 -12.47119,4.31915 -26.62823,2.79237 -38.41961,-3.1363 -7.99311,-4.01891 -15.00816,-10.00609 -20.1073,-17.3573 -5.09913,-7.35121 -8.25739,-16.05943 -8.90342,-24.98267 -0.63444,-8.76308 1.12172,-17.55976 3.90867,-25.89205 2.78695,-8.33228 6.59253,-16.27949 10.20466,-24.28865 9.26015,-20.5325 17.29654,-41.5932 25.09035,-62.72588 3.17557,-8.61046 6.3119,-17.23539 9.40888,-25.87443 z"
|
||||||
|
id="path1-3"
|
||||||
|
inkscape:path-effect="#path-effect1-7"
|
||||||
|
inkscape:original-d="m 256.39204,108.98622 c 0,0 6.27259,18.29505 9.40888,26.6585 3.1363,8.36345 27.70394,55.1465 41.5559,82.32772 13.85197,27.18121 -21.43134,50.1807 -32.14701,75.27106 -10.71568,25.09035 -25.61307,-2.61358 -38.41961,-3.1363 -12.80653,-0.52271 -19.60183,-27.70393 -29.01072,-42.33997 -9.40888,-14.63604 9.40889,-33.19244 14.11333,-50.1807 4.70444,-16.98826 16.98826,-42.33997 25.09035,-62.72588 8.10209,-20.38592 9.40888,-25.87443 9.40888,-25.87443 z"
|
||||||
|
transform="matrix(0.80835273,0,0,0.91964574,47.345041,14.506872)" /><path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke-width:6;stroke-linejoin:round;paint-order:fill markers stroke"
|
||||||
|
d="m 79.975499,256.39204 c 5.425018,-11.9183 12.57961,-23.04766 21.169981,-32.93109 14.08853,-16.20919 31.8107,-28.86269 50.18071,-39.98775 17.11103,-10.36261 34.94011,-19.53934 53.317,-27.44257 -5.93477,20.02227 -10.39389,40.48176 -13.32925,61.15774 -2.18434,15.38592 -3.48986,31.3194 0.78407,46.26033 3.79604,13.2703 12.00304,25.20779 22.91567,33.65914 10.91263,8.45136 24.46093,13.40061 38.24207,14.16935 2.61087,0.14564 5.22986,0.14564 7.84073,0 4.27324,9.29986 4.55091,20.35688 0.74986,29.85952 -3.80105,9.50263 -11.62766,17.31794 -21.13577,21.10526 -3.25312,1.2958 -6.69776,2.13869 -10.19295,2.35222 -6.22311,0.38018 -12.4517,-1.24772 -18.08978,-3.90924 -5.63808,-2.66152 -10.74044,-6.32996 -15.62539,-10.20409 -16.20385,-12.85087 -30.67834,-28.65082 -38.4196,-47.82848 -7.45891,-18.4782 -8.24323,-39.19541 -4.70444,-58.80551 2.14912,-11.90928 5.8491,-23.53777 10.97703,-34.49924 -12.06684,6.45184 -24.08968,12.98599 -36.06738,19.60184 -16.28858,8.99695 -32.493692,18.145 -48.612561,27.44257 z"
|
||||||
|
id="path12-1"
|
||||||
|
inkscape:path-effect="#path-effect12-2"
|
||||||
|
inkscape:original-d="m 79.975499,256.39204 c 0,0 14.374682,-22.47677 21.169981,-32.93109 6.79531,-10.45431 33.19245,-26.13578 50.18071,-39.98775 16.98826,-13.85196 53.317,-27.44257 53.317,-27.44257 0,0 -9.14753,41.5559 -13.32925,61.15774 -4.18173,19.60183 1.04543,30.57886 0.78407,46.26033 -0.26135,15.68147 40.24911,31.6243 61.15774,47.82849 20.90862,16.20418 7.84073,0 7.84073,0 0,0 -14.11332,33.71516 -20.38591,50.96478 -6.27259,17.24961 -6.7953,1.8295 -10.19295,2.35222 -3.39766,0.52271 -22.47678,-9.9316 -33.71517,-14.11333 -11.23838,-4.18172 -25.35171,-31.36294 -38.4196,-47.82848 -13.06789,-16.46554 -3.13629,-39.20368 -4.70444,-58.80551 -1.56815,-19.60184 10.97703,-34.49924 10.97703,-34.49924 0,0 -24.04492,13.06789 -36.06738,19.60184 -12.02246,6.53394 -48.612561,27.44257 -48.612561,27.44257 z"
|
||||||
|
transform="matrix(-1.2947843,0,0,1.2947843,587.75426,-76.137043)" /><path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke-width:6;stroke-linejoin:round;paint-order:fill markers stroke"
|
||||||
|
d="m 79.975499,256.39204 c 5.425018,-11.9183 12.57961,-23.04766 21.169981,-32.93109 14.08853,-16.20919 31.8107,-28.86269 50.18071,-39.98775 17.11103,-10.36261 34.94011,-19.53934 53.317,-27.44257 -5.93477,20.02227 -10.39389,40.48176 -13.32925,61.15774 -2.18434,15.38592 -3.48986,31.3194 0.78407,46.26033 3.79604,13.2703 12.00304,25.20779 22.91567,33.65914 10.91263,8.45136 24.46093,13.40061 38.24207,14.16935 2.61087,0.14564 5.22986,0.14564 7.84073,0 4.27324,9.29986 4.55091,20.35688 0.74986,29.85952 -3.80105,9.50263 -11.62766,17.31794 -21.13577,21.10526 -3.25312,1.2958 -6.69776,2.13869 -10.19295,2.35222 -6.22311,0.38018 -12.4517,-1.24772 -18.08978,-3.90924 -5.63808,-2.66152 -10.74044,-6.32996 -15.62539,-10.20409 -16.20385,-12.85087 -30.67834,-28.65082 -38.4196,-47.82848 -7.45891,-18.4782 -8.24323,-39.19541 -4.70444,-58.80551 2.14912,-11.90928 5.8491,-23.53777 10.97703,-34.49924 -12.06684,6.45184 -24.08968,12.98599 -36.06738,19.60184 -16.28858,8.99695 -32.493692,18.145 -48.612561,27.44257 z"
|
||||||
|
id="path12"
|
||||||
|
inkscape:path-effect="#path-effect12"
|
||||||
|
inkscape:original-d="m 79.975499,256.39204 c 0,0 14.374682,-22.47677 21.169981,-32.93109 6.79531,-10.45431 33.19245,-26.13578 50.18071,-39.98775 16.98826,-13.85196 53.317,-27.44257 53.317,-27.44257 0,0 -9.14753,41.5559 -13.32925,61.15774 -4.18173,19.60183 1.04543,30.57886 0.78407,46.26033 -0.26135,15.68147 40.24911,31.6243 61.15774,47.82849 20.90862,16.20418 7.84073,0 7.84073,0 0,0 -14.11332,33.71516 -20.38591,50.96478 -6.27259,17.24961 -6.7953,1.8295 -10.19295,2.35222 -3.39766,0.52271 -22.47678,-9.9316 -33.71517,-14.11333 -11.23838,-4.18172 -25.35171,-31.36294 -38.4196,-47.82848 -13.06789,-16.46554 -3.13629,-39.20368 -4.70444,-58.80551 -1.56815,-19.60184 10.97703,-34.49924 10.97703,-34.49924 0,0 -24.04492,13.06789 -36.06738,19.60184 -12.02246,6.53394 -48.612561,27.44257 -48.612561,27.44257 z"
|
||||||
|
transform="matrix(1.2947843,0,0,1.2947843,-75.464865,-75.464863)" /><path
|
||||||
|
style="fill:#ffffff;fill-opacity:0.999969;stroke-width:8.48321;stroke-linejoin:round;paint-order:fill markers stroke"
|
||||||
|
d="m 221.43137,394.8085 34.06963,69.25714 32.93398,-71.42141 -34.06964,-27.05358 z"
|
||||||
|
id="path13" /></g></svg>
|
||||||
|
After Width: | Height: | Size: 10 KiB |
8
dist/citra.xml → dist/lucina3ds.xml
vendored
@@ -4,7 +4,7 @@
|
|||||||
<comment>Nintendo 3DS homebrew executable</comment>
|
<comment>Nintendo 3DS homebrew executable</comment>
|
||||||
<comment xml:lang="fr">Exécutable non-officiel pour Nintendo 3DS </comment>
|
<comment xml:lang="fr">Exécutable non-officiel pour Nintendo 3DS </comment>
|
||||||
<acronym>3DSX</acronym>
|
<acronym>3DSX</acronym>
|
||||||
<icon name="citra"/>
|
<icon name="lucina3ds"/>
|
||||||
<glob pattern="*.3dsx"/>
|
<glob pattern="*.3dsx"/>
|
||||||
<magic><match value="3DSX" type="string" offset="0"/></magic>
|
<magic><match value="3DSX" type="string" offset="0"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<comment xml:lang="fr">Image de cartouche Nintendo 3DS</comment>
|
<comment xml:lang="fr">Image de cartouche Nintendo 3DS</comment>
|
||||||
<acronym>CCI</acronym>
|
<acronym>CCI</acronym>
|
||||||
<expanded-acronym>CTR Cart Image</expanded-acronym>
|
<expanded-acronym>CTR Cart Image</expanded-acronym>
|
||||||
<icon name="citra"/>
|
<icon name="lucina3ds"/>
|
||||||
<glob pattern="*.cci"/>
|
<glob pattern="*.cci"/>
|
||||||
<glob pattern="*.3ds"/>
|
<glob pattern="*.3ds"/>
|
||||||
<magic><match value="NCSD" type="string" offset="256"/></magic>
|
<magic><match value="NCSD" type="string" offset="256"/></magic>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<comment xml:lang="fr">Exécutable Nintendo 3DS</comment>
|
<comment xml:lang="fr">Exécutable Nintendo 3DS</comment>
|
||||||
<acronym>CXI</acronym>
|
<acronym>CXI</acronym>
|
||||||
<expanded-acronym>CTR eXecutable Image</expanded-acronym>
|
<expanded-acronym>CTR eXecutable Image</expanded-acronym>
|
||||||
<icon name="citra"/>
|
<icon name="lucina3ds"/>
|
||||||
<glob pattern="*.cxi"/>
|
<glob pattern="*.cxi"/>
|
||||||
<magic><match value="NCCH" type="string" offset="256"/></magic>
|
<magic><match value="NCCH" type="string" offset="256"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<comment xml:lang="fr">Archive installable Nintendo 3DS</comment>
|
<comment xml:lang="fr">Archive installable Nintendo 3DS</comment>
|
||||||
<acronym>CIA</acronym>
|
<acronym>CIA</acronym>
|
||||||
<expanded-acronym>CTR Importable Archive</expanded-acronym>
|
<expanded-acronym>CTR Importable Archive</expanded-acronym>
|
||||||
<icon name="citra"/>
|
<icon name="lucina3ds"/>
|
||||||
<glob pattern="*.cia"/>
|
<glob pattern="*.cia"/>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
|
||||||
2
dist/qt_themes/default/default.qrc
vendored
@@ -13,7 +13,7 @@
|
|||||||
<file alias="48x48/no_avatar.png">icons/48x48/no_avatar.png</file>
|
<file alias="48x48/no_avatar.png">icons/48x48/no_avatar.png</file>
|
||||||
<file alias="48x48/plus.png">icons/48x48/plus.png</file>
|
<file alias="48x48/plus.png">icons/48x48/plus.png</file>
|
||||||
<file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file>
|
<file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file>
|
||||||
<file alias="256x256/citra.png">icons/256x256/citra.png</file>
|
<file alias="256x256/lucina3ds.png">icons/256x256/lucina3ds.png</file>
|
||||||
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>
|
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="default">
|
<qresource prefix="default">
|
||||||
|
|||||||
BIN
dist/qt_themes/default/icons/256x256/citra.png
vendored
|
Before Width: | Height: | Size: 26 KiB |
BIN
dist/qt_themes/default/icons/256x256/lucina3ds.png
vendored
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
12
dist/scripting/citra.py
vendored
@@ -11,10 +11,10 @@ class RequestType(enum.IntEnum):
|
|||||||
ReadMemory = 1,
|
ReadMemory = 1,
|
||||||
WriteMemory = 2
|
WriteMemory = 2
|
||||||
|
|
||||||
CITRA_PORT = 45987
|
LUCINA3DS_PORT = 45987
|
||||||
|
|
||||||
class Citra:
|
class Lucina3DS:
|
||||||
def __init__(self, address="127.0.0.1", port=CITRA_PORT):
|
def __init__(self, address="127.0.0.1", port=LUCINA3DS_PORT):
|
||||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
self.address = address
|
self.address = address
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ class Citra:
|
|||||||
request_data = struct.pack("II", read_address, temp_read_size)
|
request_data = struct.pack("II", read_address, temp_read_size)
|
||||||
request, request_id = self._generate_header(RequestType.ReadMemory, len(request_data))
|
request, request_id = self._generate_header(RequestType.ReadMemory, len(request_data))
|
||||||
request += request_data
|
request += request_data
|
||||||
self.socket.sendto(request, (self.address, CITRA_PORT))
|
self.socket.sendto(request, (self.address, LUCINA3DS_PORT))
|
||||||
|
|
||||||
raw_reply = self.socket.recv(MAX_PACKET_SIZE)
|
raw_reply = self.socket.recv(MAX_PACKET_SIZE)
|
||||||
reply_data = self._read_and_validate_header(raw_reply, request_id, RequestType.ReadMemory)
|
reply_data = self._read_and_validate_header(raw_reply, request_id, RequestType.ReadMemory)
|
||||||
@@ -77,7 +77,7 @@ class Citra:
|
|||||||
request_data += write_contents[:temp_write_size]
|
request_data += write_contents[:temp_write_size]
|
||||||
request, request_id = self._generate_header(RequestType.WriteMemory, len(request_data))
|
request, request_id = self._generate_header(RequestType.WriteMemory, len(request_data))
|
||||||
request += request_data
|
request += request_data
|
||||||
self.socket.sendto(request, (self.address, CITRA_PORT))
|
self.socket.sendto(request, (self.address, LUCINA3DS_PORT))
|
||||||
|
|
||||||
raw_reply = self.socket.recv(MAX_PACKET_SIZE)
|
raw_reply = self.socket.recv(MAX_PACKET_SIZE)
|
||||||
reply_data = self._read_and_validate_header(raw_reply, request_id, RequestType.WriteMemory)
|
reply_data = self._read_and_validate_header(raw_reply, request_id, RequestType.WriteMemory)
|
||||||
@@ -92,4 +92,4 @@ class Citra:
|
|||||||
|
|
||||||
if "__main__" == __name__:
|
if "__main__" == __name__:
|
||||||
import doctest
|
import doctest
|
||||||
doctest.testmod(extraglobs={'c': Citra()})
|
doctest.testmod(extraglobs={'c': LUCINA3DS()})
|
||||||
|
|||||||
2
externals/CMakeLists.txt
vendored
@@ -116,7 +116,7 @@ if ("x86_64" IN_LIST ARCHITECTURE OR "arm64" IN_LIST ARCHITECTURE)
|
|||||||
else()
|
else()
|
||||||
set(DYNARMIC_TESTS OFF CACHE BOOL "")
|
set(DYNARMIC_TESTS OFF CACHE BOOL "")
|
||||||
set(DYNARMIC_FRONTENDS "A32" CACHE STRING "")
|
set(DYNARMIC_FRONTENDS "A32" CACHE STRING "")
|
||||||
set(DYNARMIC_USE_PRECOMPILED_HEADERS ${CITRA_USE_PRECOMPILED_HEADERS} CACHE BOOL "")
|
set(DYNARMIC_USE_PRECOMPILED_HEADERS ${LUCINA3DS_USE_PRECOMPILED_HEADERS} CACHE BOOL "")
|
||||||
add_subdirectory(dynarmic EXCLUDE_FROM_ALL)
|
add_subdirectory(dynarmic EXCLUDE_FROM_ALL)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
0
externals/catch2/CMake/llvm-cov-wrapper
vendored
Normal file → Executable file
0
externals/catch2/fuzzing/build_fuzzers.sh
vendored
Normal file → Executable file
0
externals/catch2/tests/TestScripts/testBazelSharding.py
vendored
Normal file → Executable file
0
externals/catch2/tests/TestScripts/testPartialTestCaseEvent.py
vendored
Normal file → Executable file
0
externals/catch2/tests/TestScripts/testRandomOrder.py
vendored
Normal file → Executable file
0
externals/catch2/tests/TestScripts/testSharding.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/approvalTests.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/approve.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/buildAndTest.sh
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/checkConvenienceHeaders.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/checkDuplicateFilenames.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/checkLicense.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/developBuild.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/fixWhitespace.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/generateAmalgamatedFiles.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/majorRelease.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/minorRelease.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/patchRelease.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/updateDocumentSnippets.py
vendored
Normal file → Executable file
0
externals/catch2/tools/scripts/updateDocumentToC.py
vendored
Normal file → Executable file
22
externals/cpp-jwt/examples/CMakeFiles/simple_ex1.dir/DependInfo.cmake
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# The set of languages for which implicit dependencies are needed:
|
||||||
|
set(CMAKE_DEPENDS_LANGUAGES
|
||||||
|
"CXX"
|
||||||
|
)
|
||||||
|
# The set of files for implicit dependencies of each language:
|
||||||
|
set(CMAKE_DEPENDS_CHECK_CXX
|
||||||
|
"/Users/amuralid/dev_test/cpp-jwt/examples/simple_ex1.cc" "/Users/amuralid/dev_test/cpp-jwt/examples/CMakeFiles/simple_ex1.dir/simple_ex1.cc.o"
|
||||||
|
)
|
||||||
|
set(CMAKE_CXX_COMPILER_ID "Clang")
|
||||||
|
|
||||||
|
# The include file search paths:
|
||||||
|
set(CMAKE_CXX_TARGET_INCLUDE_PATH
|
||||||
|
"include"
|
||||||
|
"/usr/local/Cellar/openssl/1.0.2j/include"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Targets to which this target links.
|
||||||
|
set(CMAKE_TARGET_LINKED_INFO_FILES
|
||||||
|
)
|
||||||
|
|
||||||
|
# Fortran module output directory.
|
||||||
|
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
|
||||||
10
externals/cpp-jwt/examples/CMakeFiles/simple_ex1.dir/cmake_clean.cmake
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
file(REMOVE_RECURSE
|
||||||
|
"CMakeFiles/simple_ex1.dir/simple_ex1.cc.o"
|
||||||
|
"simple_ex1.pdb"
|
||||||
|
"simple_ex1"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Per-language clean rules from dependency scanning.
|
||||||
|
foreach(lang CXX)
|
||||||
|
include(CMakeFiles/simple_ex1.dir/cmake_clean_${lang}.cmake OPTIONAL)
|
||||||
|
endforeach()
|
||||||
3
externals/cpp-jwt/examples/CMakeFiles/simple_ex1.dir/progress.make
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
CMAKE_PROGRESS_1 = 1
|
||||||
|
CMAKE_PROGRESS_2 = 2
|
||||||
|
|
||||||
0
externals/cpp-jwt/include/jwt/test/test_base64
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_hmac
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_jwt_decode
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_jwt_header
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_jwt_object
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_jwt_payload
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_jwt_signature
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_rsa
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_stack_alloc
vendored
Normal file → Executable file
0
externals/cpp-jwt/include/jwt/test/test_sv
vendored
Normal file → Executable file
11
externals/cryptopp-cmake/.vscode/extensions.json
vendored
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"cheshirekow.cmake-format",
|
|
||||||
"donjayamanne.githistory",
|
|
||||||
"editorconfig.editorconfig",
|
|
||||||
"ms-vscode.cmake-tools",
|
|
||||||
"redhat.vscode-yaml",
|
|
||||||
"stkb.rewrap",
|
|
||||||
"streetsidesoftware.code-spell-checker",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
18
externals/cryptopp-cmake/.vscode/launch.json
vendored
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"type": "cppvsdbg",
|
|
||||||
"request": "launch",
|
|
||||||
"name": "cryptest",
|
|
||||||
"program": "${workspaceFolder}/build/cryptopp/cryptest",
|
|
||||||
"args": [
|
|
||||||
"v"
|
|
||||||
],
|
|
||||||
"cwd": "${workspaceFolder}/build"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
37
externals/cryptopp-cmake/.vscode/settings.json
vendored
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
"editor.rulers": [
|
|
||||||
80,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"rewrap.wrappingColumn": 80,
|
|
||||||
"rewrap.autoWrap.enabled": true,
|
|
||||||
"editor.detectIndentation": false,
|
|
||||||
"editor.formatOnPaste": false,
|
|
||||||
"editor.formatOnSave": true,
|
|
||||||
"git.autofetch": true,
|
|
||||||
"git.confirmSync": false,
|
|
||||||
"git.enableSmartCommit": true,
|
|
||||||
"editor.bracketPairColorization.enabled": true,
|
|
||||||
"workbench.colorCustomizations": {
|
|
||||||
"[Default Dark+]": {
|
|
||||||
"editorBracketHighlight.foreground3": "#9CDCFE"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cmake.configureOnOpen": true,
|
|
||||||
"cmake.preferredGenerators": [
|
|
||||||
"Ninja"
|
|
||||||
],
|
|
||||||
"cmake.configureArgs": [
|
|
||||||
"-DCMAKE_INSTALL_PREFIX=${workspaceFolder}/build/install",
|
|
||||||
"-DCMAKE_VERBOSE_MAKEFILE=ON"
|
|
||||||
],
|
|
||||||
"rewrap.reformat": true,
|
|
||||||
"search.exclude": {
|
|
||||||
"**/.idea": true,
|
|
||||||
"**/out": true
|
|
||||||
},
|
|
||||||
"cSpell.words": [
|
|
||||||
"cmake",
|
|
||||||
"pkgconfig"
|
|
||||||
],
|
|
||||||
}
|
|
||||||