Android & PC: Initial Mandarine rebrand
One of the reasons of this rebrand is that I noticed that "Citra-Enhanced" doesn't call much the attention of the people, and looks like a very simple brand, so let's change our papers.
@ -8,7 +8,7 @@ cmake .. -GNinja \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||
-DENABLE_QT_TRANSLATION=ON \
|
||||
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DMANDARINE_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON
|
||||
ninja
|
||||
|
||||
|
@ -8,7 +8,7 @@ if [ "$TARGET" = "appimage" ]; then
|
||||
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)
|
||||
export EXTRA_CMAKE_FLAGS=(-DMANDARINE_USE_PRECOMPILED_HEADERS=OFF)
|
||||
fi
|
||||
|
||||
mkdir build && cd build
|
||||
@ -18,7 +18,7 @@ cmake .. -G Ninja \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||
"${EXTRA_CMAKE_FLAGS[@]}" \
|
||||
-DENABLE_QT_TRANSLATION=ON \
|
||||
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DMANDARINE_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||
-DUSE_DISCORD_PRESENCE=ON
|
||||
ninja
|
||||
|
@ -11,7 +11,7 @@ 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)
|
||||
BIN_PATHS=(mandarine mandarine-room mandarine-qt.app/Contents/MacOS/mandarine-qt)
|
||||
|
||||
# Dylib paths that need to be combined.
|
||||
IFS=$'\n'
|
||||
@ -37,7 +37,7 @@ for OTHER_ARTIFACT in "${ARTIFACTS_LIST[@]:1}"; do
|
||||
done
|
||||
|
||||
# Re-sign executables and bundles after combining.
|
||||
APP_PATHS=(citra citra-room citra-qt.app)
|
||||
APP_PATHS=(mandarine mandarine-room mandarine-qt.app)
|
||||
for APP_PATH in "${APP_PATHS[@]}"; do
|
||||
codesign --deep -fs - $BUNDLE_DIR/$APP_PATH
|
||||
done
|
||||
|
@ -7,7 +7,7 @@ cmake .. -GNinja \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||
-DENABLE_QT_TRANSLATION=ON \
|
||||
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DMANDARINE_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||
-DUSE_DISCORD_PRESENCE=ON
|
||||
ninja
|
||||
|
@ -3,7 +3,7 @@
|
||||
# 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"
|
||||
REV_NAME="mandarine-$OS-$TARGET-$GITDATE-$GITREV"
|
||||
|
||||
# Determine the name of the release being built.
|
||||
if [[ "$GITHUB_REF_NAME" =~ ^canary- ]] || [[ "$GITHUB_REF_NAME" =~ ^nightly- ]]; then
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
|
||||
GITREV="`git show -s --format='%h'`"
|
||||
REV_NAME="citra-unified-source-${GITDATE}-${GITREV}"
|
||||
REV_NAME="mandarine-unified-source-${GITDATE}-${GITREV}"
|
||||
|
||||
COMPAT_LIST='dist/compatibility_list/compatibility_list.json'
|
||||
|
||||
|
@ -6,7 +6,7 @@ cmake .. -G Ninja \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||
-DENABLE_QT_TRANSLATION=ON \
|
||||
-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DMANDARINE_ENABLE_COMPATIBILITY_REPORTING=ON \
|
||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
||||
-DUSE_DISCORD_PRESENCE=ON
|
||||
ninja
|
||||
|
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -3,7 +3,7 @@ description: File a bug report
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with Citra.
|
||||
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with Mandarine.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
|
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,8 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Citra Discord
|
||||
- name: Mandarine Discord
|
||||
url: https://citra-emu.org/discord/
|
||||
about: If you are experiencing an issue with Citra, and you need tech support, or if you have a general question, try asking in the official Citra Discord linked here. Piracy is not allowed.
|
||||
about: If you are experiencing an issue with Mandarine, and you need tech support, or if you have a general question, try asking in the official Mandarine Discord linked here. Piracy is not allowed.
|
||||
- name: Community forums
|
||||
url: https://community.citra-emu.org
|
||||
about: This is an alternative place for tech support, however helpers there are not as active.
|
||||
|
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -4,7 +4,7 @@ labels: "request"
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make Citra better.
|
||||
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make Mandarine better.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
@ -23,6 +23,6 @@ body:
|
||||
id: why-feature
|
||||
attributes:
|
||||
label: Why would this feature be useful?
|
||||
description: A brief description of why this feature would make Citra better.
|
||||
description: A brief description of why this feature would make Mandarine better.
|
||||
validations:
|
||||
required: true
|
||||
|
2
.github/workflows/build.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: citra-build
|
||||
name: mandarine-build
|
||||
|
||||
on:
|
||||
push:
|
||||
|
6
.github/workflows/ci-merge.js
vendored
@ -130,12 +130,12 @@ async function fetchPullRequests(pulls, repoUrl, execa) {
|
||||
async function mergePullRequests(pulls, execa) {
|
||||
let mergeResults = {};
|
||||
console.log("::group::Merge pull requests");
|
||||
await execa("git", ["config", "--global", "user.name", "citrabot"]);
|
||||
await execa("git", ["config", "--global", "user.name", "mandarinebot"]);
|
||||
await execa("git", [
|
||||
"config",
|
||||
"--global",
|
||||
"user.email",
|
||||
"citra\x40citra-emu\x2eorg", // prevent email harvesters from scraping the address
|
||||
"mandarine\x40mandarine3ds\x2eorg", // prevent email harvesters from scraping the address
|
||||
]);
|
||||
let hasFailed = false;
|
||||
for (let pull of pulls) {
|
||||
@ -200,7 +200,7 @@ async function mergebot(github, context, execa) {
|
||||
}
|
||||
console.info("The following pull requests will be merged:");
|
||||
console.table(displayList);
|
||||
await fetchPullRequests(pulls, "https://github.com/PabloMK7/citra", execa);
|
||||
await fetchPullRequests(pulls, "https://github.com/mandarine3ds/mandarine", execa);
|
||||
const mergeResults = await mergePullRequests(pulls, execa);
|
||||
await generateReadme(pulls, context, mergeResults, execa);
|
||||
await tagAndPush(github, context.repo.owner, `${context.repo.repo}-canary`, execa, true);
|
||||
|
2
.github/workflows/format.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: citra-format
|
||||
name: mandarine-format
|
||||
|
||||
on:
|
||||
push:
|
||||
|
4
.github/workflows/transifex.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: citra-transifex
|
||||
name: mandarine-transifex
|
||||
|
||||
on:
|
||||
push:
|
||||
@ -8,7 +8,7 @@ jobs:
|
||||
transifex:
|
||||
runs-on: ubuntu-latest
|
||||
container: pablomk7/build-environments:linux-fresh
|
||||
if: ${{ github.repository == 'citra-emu/citra' }}
|
||||
if: ${{ github.repository == 'mandarine3ds/mandarine' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
|
@ -17,7 +17,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modul
|
||||
include(DownloadExternals)
|
||||
include(CMakeDependentOption)
|
||||
|
||||
project(citra LANGUAGES C CXX ASM)
|
||||
project(mandarine LANGUAGES C CXX ASM)
|
||||
|
||||
# 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.
|
||||
@ -91,12 +91,12 @@ option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF)
|
||||
# Compile options
|
||||
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(CITRA_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
||||
option(CITRA_WARNINGS_AS_ERRORS "Enable warnings as errors" ON)
|
||||
option(MANDARINE_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
||||
option(MANDARINE_WARNINGS_AS_ERRORS "Enable warnings as errors" ON)
|
||||
|
||||
include(CitraHandleSystemLibs)
|
||||
include(MandarineHandleSystemLibs)
|
||||
|
||||
if (CITRA_USE_PRECOMPILED_HEADERS)
|
||||
if (MANDARINE_USE_PRECOMPILED_HEADERS)
|
||||
message(STATUS "Using Precompiled Headers.")
|
||||
set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
|
||||
|
||||
@ -159,7 +159,7 @@ configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.
|
||||
${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
|
||||
COPYONLY)
|
||||
if (ENABLE_COMPATIBILITY_LIST_DOWNLOAD AND NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
|
||||
message(STATUS "Downloading compatibility list for citra...")
|
||||
message(STATUS "Downloading compatibility list for mandarine...")
|
||||
file(DOWNLOAD
|
||||
https://api.citra-emu.org/gamedb/
|
||||
"${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json" SHOW_PROGRESS)
|
||||
@ -437,11 +437,11 @@ add_subdirectory(src)
|
||||
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 mandarine-qt project or mandarine project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
||||
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 mandarine-qt)
|
||||
else()
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT citra)
|
||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT mandarine)
|
||||
endif()
|
||||
|
||||
# Create target for outputting distributable bundles.
|
||||
@ -449,13 +449,13 @@ endif()
|
||||
if (NOT ANDROID AND NOT IOS)
|
||||
include(BundleTarget)
|
||||
if (ENABLE_SDL2_FRONTEND)
|
||||
bundle_target(citra)
|
||||
bundle_target(mandarine)
|
||||
endif()
|
||||
if (ENABLE_QT)
|
||||
bundle_target(citra-qt)
|
||||
bundle_target(mandarine-qt)
|
||||
endif()
|
||||
if (ENABLE_DEDICATED_ROOM)
|
||||
bundle_target(citra-room)
|
||||
bundle_target(mandarine-room)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -467,22 +467,22 @@ endif()
|
||||
# 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
|
||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra-qt.desktop"
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/mandarine-qt.desktop"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.svg"
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/mandarine.svg"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps")
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.xml"
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/mandarine.xml"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/mime/packages")
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
if(ENABLE_SDL2)
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra.6"
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/mandarine.6"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
|
||||
endif()
|
||||
|
||||
if (ENABLE_QT)
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/citra-qt.6"
|
||||
install(FILES "${PROJECT_SOURCE_DIR}/dist/mandarine-qt.6"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man6")
|
||||
endif()
|
||||
endif()
|
||||
|
@ -124,7 +124,7 @@ if (BUNDLE_TARGET_EXECUTE)
|
||||
${extra_linuxdeploy_args}
|
||||
--plugin checkrt
|
||||
--executable "${executable_path}"
|
||||
--icon-file "${source_path}/dist/citra.svg"
|
||||
--icon-file "${source_path}/dist/mandarine.svg"
|
||||
--desktop-file "${source_path}/dist/${executable_name}.desktop"
|
||||
--appdir "${appdir_path}"
|
||||
RESULT_VARIABLE linuxdeploy_appdir_result)
|
||||
@ -282,7 +282,7 @@ else()
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bundle/dist/")
|
||||
add_custom_command(
|
||||
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/mandarine.png")
|
||||
add_custom_command(
|
||||
TARGET bundle
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/license.txt" "${CMAKE_BINARY_DIR}/bundle/")
|
||||
|
@ -42,7 +42,7 @@ if (DEFINED ENV{CI})
|
||||
endif()
|
||||
|
||||
# regex capture the string nightly or canary into CMAKE_MATCH_1
|
||||
string(REGEX MATCH "citra-emu/citra-?(.*)" OUTVAR ${BUILD_REPOSITORY})
|
||||
string(REGEX MATCH "mandarine3ds/mandarine-?(.*)" OUTVAR ${BUILD_REPOSITORY})
|
||||
if ("${CMAKE_MATCH_COUNT}" GREATER 0)
|
||||
# capitalize the first letter of each word in the repo name.
|
||||
string(REPLACE "-" ";" REPO_NAME_LIST ${CMAKE_MATCH_1})
|
||||
|
@ -1 +1 @@
|
||||
**The Contributor's Guide has moved to [the wiki](https://github.com/citra-emu/citra/wiki/Contributing).**
|
||||
**The Contributor's Guide has moved to [the wiki](https://github.com/mandarine3ds/mandarine/wiki/Contributing).**
|
2
Doxyfile
@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
|
||||
# title of most generated pages and in a few other places.
|
||||
# The default value is: My Project.
|
||||
|
||||
PROJECT_NAME = Citra
|
||||
PROJECT_NAME = Mandarine
|
||||
|
||||
# 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
|
||||
|
BIN
dist/apple/citra.icns
vendored
BIN
dist/apple/launch_logo.png
vendored
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 8.7 KiB |
BIN
dist/apple/mandarine.icns
vendored
Normal file
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 |
BIN
dist/doc-icon.png
vendored
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 2.1 KiB |
4
dist/dumpkeys/README.md
vendored
@ -1,10 +1,10 @@
|
||||
# DumpKeys
|
||||
|
||||
This is a GodMode9 script that dumps all the keys and other related secrets that Citra needs from a real 3DS.
|
||||
This is a GodMode9 script that dumps all the keys and other related secrets that Mandarine needs from a real 3DS.
|
||||
|
||||
Usage:
|
||||
1. Copy "DumpKeys.gm9" into the "gm9/scripts/" directory on your SD card.
|
||||
2. Launch GodMode9, press the HOME button, select Scripts, and select "DumpKeys" from the list of scripts that appears.
|
||||
3. Wait for the script to complete and return you to the GodMode9 main menu.
|
||||
4. Power off your system and copy the "gm9/aes_keys.txt" and "gm9/seeddb.bin" files off of your SD card into "(Citra directory)/sysdata/".
|
||||
4. Power off your system and copy the "gm9/aes_keys.txt" and "gm9/seeddb.bin" files off of your SD card into "(Mandarine directory)/sysdata/".
|
||||
|
||||
|
BIN
dist/icon.png
vendored
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 8.7 KiB |
2
dist/installer/CMakeLists.txt
vendored
@ -11,7 +11,7 @@ endif()
|
||||
|
||||
set(BUILD_DIR "${CMAKE_BINARY_DIR}/installer")
|
||||
set(DIST_DIR "${BUILD_DIR}/dist")
|
||||
set(TARGET_FILE "${DIST_DIR}/citra-setup-${PLATFORM}")
|
||||
set(TARGET_FILE "${DIST_DIR}/mandarine-setup-${PLATFORM}")
|
||||
|
||||
file(MAKE_DIRECTORY "${BUILD_DIR}" "${DIST_DIR}")
|
||||
|
||||
|
4
dist/installer/README.md
vendored
@ -1,7 +1,7 @@
|
||||
Citra Qt Installer
|
||||
Mandarine Qt Installer
|
||||
==================
|
||||
|
||||
This contains the configuration files for building Citra's installer.
|
||||
This contains the configuration files for building Mandarine's installer.
|
||||
|
||||
Installers can only be built on the platform that they are targeting.
|
||||
|
||||
|
14
dist/installer/config/config_linux.xml
vendored
@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Installer>
|
||||
<Name>Citra</Name>
|
||||
<Name>Mandarine</Name>
|
||||
<Version>1.0.0</Version>
|
||||
<Title>Citra Updater</Title>
|
||||
<Publisher>Citra Team</Publisher>
|
||||
<!-- e.g. /home/<user>/.citra or /opt/citra if run as root -->
|
||||
<TargetDir>@HomeDir@/.citra</TargetDir>
|
||||
<AdminTargetDir>/opt/citra</AdminTargetDir>
|
||||
<Title>Mandarine Updater</Title>
|
||||
<Publisher>Mandarine Team</Publisher>
|
||||
<!-- e.g. /home/<user>/.mandarine or /opt/mandarine if run as root -->
|
||||
<TargetDir>@HomeDir@/.mandarine</TargetDir>
|
||||
<AdminTargetDir>/opt/mandarine</AdminTargetDir>
|
||||
<InstallerApplicationIcon>icon</InstallerApplicationIcon>
|
||||
<InstallerWindowIcon>icon.png</InstallerWindowIcon>
|
||||
<RemoteRepositories>
|
||||
<Repository>
|
||||
<Url>https://repo.citra-emu.org</Url>
|
||||
<Enabled>1</Enabled>
|
||||
<DisplayName>Official Citra Repository</DisplayName>
|
||||
<DisplayName>Official Mandarine Repository</DisplayName>
|
||||
</Repository>
|
||||
</RemoteRepositories>
|
||||
</Installer>
|
||||
|
12
dist/installer/config/config_mac.xml
vendored
@ -1,18 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Installer>
|
||||
<Name>Citra</Name>
|
||||
<Name>Mandarine</Name>
|
||||
<Version>1.0.0</Version>
|
||||
<Title>Citra Updater</Title>
|
||||
<Publisher>Citra Team</Publisher>
|
||||
<!-- e.g. /Applications/Citra -->
|
||||
<TargetDir>@ApplicationsDir@/Citra</TargetDir>
|
||||
<Title>Mandarine Updater</Title>
|
||||
<Publisher>Mandarine Team</Publisher>
|
||||
<!-- e.g. /Applications/Mandarine -->
|
||||
<TargetDir>@ApplicationsDir@/Mandarine</TargetDir>
|
||||
<InstallerApplicationIcon>icon</InstallerApplicationIcon>
|
||||
<InstallerWindowIcon>icon.png</InstallerWindowIcon>
|
||||
<RemoteRepositories>
|
||||
<Repository>
|
||||
<Url>https://repo.citra-emu.org</Url>
|
||||
<Enabled>1</Enabled>
|
||||
<DisplayName>Official Citra Repository</DisplayName>
|
||||
<DisplayName>Official Mandarine Repository</DisplayName>
|
||||
</Repository>
|
||||
</RemoteRepositories>
|
||||
</Installer>
|
||||
|
14
dist/installer/config/config_windows.xml
vendored
@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Installer>
|
||||
<Name>Citra</Name>
|
||||
<Name>Mandarine</Name>
|
||||
<Version>1.0.0</Version>
|
||||
<Title>Citra Updater</Title>
|
||||
<Publisher>Citra Team</Publisher>
|
||||
<StartMenuDir>Citra</StartMenuDir>
|
||||
<!-- e.g. C:\home\<user>\AppData\Local\Citra -->
|
||||
<TargetDir>@HomeDir@/AppData/Local/Citra</TargetDir>
|
||||
<Title>Mandarine Updater</Title>
|
||||
<Publisher>Mandarine Team</Publisher>
|
||||
<StartMenuDir>Mandarine</StartMenuDir>
|
||||
<!-- e.g. C:\home\<user>\AppData\Local\Mandarine -->
|
||||
<TargetDir>@HomeDir@/AppData/Local/Mandarine</TargetDir>
|
||||
<InstallerApplicationIcon>icon</InstallerApplicationIcon>
|
||||
<InstallerWindowIcon>icon.png</InstallerWindowIcon>
|
||||
<RemoteRepositories>
|
||||
<Repository>
|
||||
<Url>https://repo.citra-emu.org</Url>
|
||||
<Enabled>1</Enabled>
|
||||
<DisplayName>Official Citra Repository</DisplayName>
|
||||
<DisplayName>Official Mandarine Repository</DisplayName>
|
||||
</Repository>
|
||||
</RemoteRepositories>
|
||||
</Installer>
|
||||
|
4
dist/languages/.tx/config
vendored
@ -1,13 +1,13 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[o:citra:p:citra:r:emulator]
|
||||
[o:mandarine:p:mandarine:r:emulator]
|
||||
file_filter = <lang>.ts
|
||||
source_file = en.ts
|
||||
source_lang = en
|
||||
type = QT
|
||||
|
||||
[o:citra:p:citra:r:android]
|
||||
[o:mandarine:p:mandarine:r:android]
|
||||
file_filter = ../../src/android/app/src/main/res/values-<lang>/strings.xml
|
||||
source_file = ../../src/android/app/src/main/res/values/strings.xml
|
||||
type = ANDROID
|
||||
|
2
dist/languages/README.md
vendored
@ -1 +1 @@
|
||||
This directory stores translation patches (TS files) for citra Qt frontend. This directory is linked with [citra project on transifex](https://www.transifex.com/citra/citra), so you can update the translation by executing `tx pull -a`. If you want to contribute to the translation, please go the transifex link and submit your translation there. This directory on the main repo will be synchronized with transifex periodically. Do not directly open PRs on github to modify the translation.
|
||||
This directory stores translation patches (TS files) for mandarine Qt frontend. This directory is linked with [mandarine project on transifex](https://www.transifex.com/mandarine/mandarine), so you can update the translation by executing `tx pull -a`. If you want to contribute to the translation, please go the transifex link and submit your translation there. This directory on the main repo will be synchronized with transifex periodically. Do not directly open PRs on github to modify the translation.
|
||||
|
2986
dist/languages/da_DK.ts
vendored
3000
dist/languages/de.ts
vendored
2992
dist/languages/el.ts
vendored
3010
dist/languages/es_ES.ts
vendored
2980
dist/languages/fi.ts
vendored
3006
dist/languages/fr.ts
vendored
2980
dist/languages/hu_HU.ts
vendored
2982
dist/languages/id.ts
vendored
3010
dist/languages/it.ts
vendored
2990
dist/languages/ja_JP.ts
vendored
3002
dist/languages/ko_KR.ts
vendored
2984
dist/languages/lt_LT.ts
vendored
2986
dist/languages/nb.ts
vendored
3008
dist/languages/nl.ts
vendored
2968
dist/languages/pl_PL.ts
vendored
3000
dist/languages/pt_BR.ts
vendored
2988
dist/languages/ro_RO.ts
vendored
2986
dist/languages/ru_RU.ts
vendored
2986
dist/languages/tr_TR.ts
vendored
2986
dist/languages/vi_VN.ts
vendored
3014
dist/languages/zh_CN.ts
vendored
2994
dist/languages/zh_TW.ts
vendored
6
dist/license.md
vendored
@ -13,7 +13,7 @@ qt_themes/default/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/default/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/default/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/default/icons/48x48/no_avatar.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/default/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team
|
||||
qt_themes/default/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Mandarine team
|
||||
qt_themes/default/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/default/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/qdarkstyle/icons/16x16/connected.png | CC BY-ND 3.0 | https://icons8.com
|
||||
@ -25,7 +25,7 @@ qt_themes/qdarkstyle/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.
|
||||
qt_themes/qdarkstyle/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/qdarkstyle/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/qdarkstyle/icons/48x48/no_avatar.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/qdarkstyle/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team
|
||||
qt_themes/qdarkstyle/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Mandarine team
|
||||
qt_themes/qdarkstyle/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/qdarkstyle/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/colorful/icons/16x16/connected.png | CC BY-ND 3.0 | https://icons8.com
|
||||
@ -41,4 +41,4 @@ qt_themes/colorful/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/colorful/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
|
||||
qt_themes/colorful_dark/icons/16x16/connected.png | CC BY-ND 3.0 | https://icons8.com
|
||||
|
||||
<!-- TODO (B3N30): Add the license of the citra icon -->
|
||||
<!-- TODO (B3N30): Add the license of the mandarine icon -->
|
||||
|
24
dist/citra-qt.6 → dist/mandarine-qt.6
vendored
@ -1,33 +1,33 @@
|
||||
.Dd November 22 2016
|
||||
.Dt citra-qt 6
|
||||
.Dt mandarine-qt 6
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm Citra-Qt
|
||||
.Nm Mandarine-Qt
|
||||
.Nd Nintendo 3DS Emulator/Debugger (Qt)
|
||||
.Sh SYNOPSIS
|
||||
.Nm citra-qt
|
||||
.Nm mandarine-qt
|
||||
.Op Ar file
|
||||
.Sh DESCRIPTION
|
||||
Citra is an experimental open-source Nintendo 3DS emulator/debugger.
|
||||
Mandarine is an experimental open-source Nintendo 3DS emulator/debugger.
|
||||
.Pp
|
||||
.Nm citra-qt
|
||||
.Nm mandarine-qt
|
||||
is the Qt implementation.
|
||||
.Sh FILES
|
||||
.Bl -tag -width Ds
|
||||
.It Pa $XDG_DATA_HOME/citra-emu
|
||||
.It Pa $XDG_DATA_HOME/mandarine3ds
|
||||
Emulator storage.
|
||||
.It Pa $XDG_CONFIG_HOME/citra-emu
|
||||
.It Pa $XDG_CONFIG_HOME/mandarine3ds
|
||||
Configuration files.
|
||||
.El
|
||||
.Sh AUTHORS
|
||||
This document is made available to you under the CC-BY license.
|
||||
.Pp
|
||||
Citra is made by a team of volunteers. These contributors are listed
|
||||
at <\fBhttps://github.com/citra-emu/citra/contributors\fR>.
|
||||
Mandarine is made by a team of volunteers. These contributors are listed
|
||||
at <\fBhttps://github.com/mandarine3ds/mandarine/contributors\fR>.
|
||||
.Pp
|
||||
.Sh SEE ALSO
|
||||
.Bl -tag -width Ds
|
||||
.It Xr citra 6
|
||||
.It Xr mandarine 6
|
||||
The SDL frontend of the application
|
||||
.El
|
||||
.Pp
|
||||
@ -35,6 +35,6 @@ Resources are available for this project:
|
||||
.Bl -tag -width Ds
|
||||
.It <\fBhttps://citra-emu.org\fR>
|
||||
The main homepage of the project.
|
||||
.It <\fBhttps://github.com/citra-emu/citra\fR>
|
||||
The main source code repository for the Citra emulator.
|
||||
.It <\fBhttps://github.com/mandarine3ds/mandarine\fR>
|
||||
The main source code repository for the Mandarine emulator.
|
||||
.Pp
|
@ -1,14 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Citra
|
||||
Name=Mandarine
|
||||
GenericName=3DS Emulator
|
||||
GenericName[fr]=Émulateur 3DS
|
||||
Comment=Nintendo 3DS video game console emulator
|
||||
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
|
||||
Icon=citra
|
||||
TryExec=citra-qt
|
||||
Exec=citra-qt %f
|
||||
Icon=mandarine
|
||||
TryExec=mandarine-qt
|
||||
Exec=mandarine-qt %f
|
||||
Categories=Game;Emulator;Qt;
|
||||
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
|
||||
Keywords=3DS;Nintendo;
|
10
dist/mandarine-room.desktop
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Mandarine Room
|
||||
Comment=Multiplayer room host for Mandarine
|
||||
Icon=mandarine
|
||||
TryExec=mandarine-room
|
||||
Exec=mandarine-room %f
|
||||
Categories=Game;Emulator;
|
||||
Keywords=3DS;Nintendo
|
24
dist/citra.6 → dist/mandarine.6
vendored
@ -1,11 +1,11 @@
|
||||
.Dd November 22 2016
|
||||
.Dt citra 6
|
||||
.Dt mandarine 6
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm Citra
|
||||
.Nm Mandarine
|
||||
.Nd Nintendo 3DS Emulator/Debugger (SDL)
|
||||
.Sh SYNOPSIS
|
||||
.Nm citra
|
||||
.Nm mandarine
|
||||
.Op Ar options
|
||||
.Op Ar file
|
||||
.Sh OPTIONS
|
||||
@ -17,26 +17,26 @@ Shows syntax help and exits
|
||||
.It Fl v , Fl Fl version
|
||||
Describes the installed version and exits
|
||||
.Sh DESCRIPTION
|
||||
Citra is an experimental open-source Nintendo 3DS emulator/debugger.
|
||||
Mandarine is an experimental open-source Nintendo 3DS emulator/debugger.
|
||||
.Pp
|
||||
.Nm citra
|
||||
.Nm mandarine
|
||||
is the Simple DirectMedia Layer (SDL) implementation.
|
||||
.Sh FILES
|
||||
.Bl -tag -width Ds
|
||||
.It Pa $XDG_DATA_HOME/citra-emu
|
||||
.It Pa $XDG_DATA_HOME/mandarine3ds
|
||||
Emulator storage.
|
||||
.It Pa $XDG_CONFIG_HOME/citra-emu
|
||||
.It Pa $XDG_CONFIG_HOME/mandarine3ds
|
||||
Configuration files.
|
||||
.El
|
||||
.Sh AUTHORS
|
||||
This document is made available to you under the CC-BY license.
|
||||
.Pp
|
||||
Citra is made by a team of volunteers. These contributors are listed
|
||||
at <\fBhttps://github.com/citra-emu/citra/contributors\fR>.
|
||||
Mandarine is made by a team of volunteers. These contributors are listed
|
||||
at <\fBhttps://github.com/mandarine3ds/mandarine/contributors\fR>.
|
||||
.Pp
|
||||
.Sh SEE ALSO
|
||||
.Bl -tag -width Ds
|
||||
.It Xr citra-qt 6
|
||||
.It Xr mandarine-qt 6
|
||||
The Qt frontend of the application
|
||||
.El
|
||||
.Pp
|
||||
@ -44,6 +44,6 @@ Resources are available for this project:
|
||||
.Bl -tag -width Ds
|
||||
.It <\fBhttps://citra-emu.org\fR>
|
||||
The main homepage of the project.
|
||||
.It <\fBhttps://github.com/citra-emu/citra\fR>
|
||||
The main source code repository for the Citra emulator.
|
||||
.It <\fBhttps://github.com/mandarine3ds/mandarine\fR>
|
||||
The main source code repository for the Mandarine emulator.
|
||||
.Pp
|
8
dist/citra.desktop → dist/mandarine.desktop
vendored
@ -1,14 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Citra
|
||||
Name=Mandarine
|
||||
GenericName=3DS Emulator
|
||||
GenericName[fr]=Émulateur 3DS
|
||||
Comment=Nintendo 3DS video game console emulator
|
||||
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
|
||||
Icon=citra
|
||||
TryExec=citra
|
||||
Exec=citra %f
|
||||
Icon=mandarine
|
||||
TryExec=mandarine
|
||||
Exec=mandarine %f
|
||||
Categories=Game;Emulator;
|
||||
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
|
||||
Keywords=3DS;Nintendo;
|
BIN
dist/mandarine.ico
vendored
Normal file
After Width: | Height: | Size: 4.4 KiB |
9
dist/mandarine.svg
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M203.451 494.263C305.458 494.263 388.15 412.078 388.15 310.698C388.15 209.317 305.458 127.132 203.451 127.132C185.458 127.132 168.066 129.689 151.622 134.458C146.47 135.952 148.797 144.129 154.161 144.129C240.209 144.129 353.59 218.451 353.59 310.131C353.59 401.812 240.209 476.133 154.161 476.133C148.282 476.133 145.558 485.164 151.2 486.814C167.768 491.662 185.304 494.263 203.451 494.263Z" fill="#FF5C00"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M271.903 170.384L264.258 161.999C261.451 158.921 260.86 158.326 260.317 157.904C258.622 156.585 256.56 155.81 254.427 155.688C253.743 155.649 252.912 155.708 248.802 156.185L239.636 157.247C239.313 157.285 238.993 157.322 238.676 157.359C234.211 157.881 230.326 158.335 226.636 157.893C217.637 156.816 209.467 151.901 204.343 144.483C202.242 141.442 200.852 137.815 199.254 133.645C199.14 133.349 199.026 133.05 198.91 132.749C198.876 132.66 198.842 132.571 198.808 132.484C198.301 131.167 197.854 130.006 197.502 128.798C196.651 125.878 196.257 122.863 196.335 119.857C196.367 118.613 196.503 117.398 196.658 116.02C196.669 115.928 196.679 115.835 196.689 115.742L202.102 67.4204C202.292 65.7263 202.322 65.3931 202.331 65.0952C202.36 64.1789 202.257 63.259 202.025 62.3622C201.95 62.0706 201.846 61.7474 201.283 60.1098L193.763 38.2409L212.94 32.5182L220.46 54.3871C220.489 54.4718 220.518 54.5558 220.547 54.6391C220.977 55.8893 221.357 56.9921 221.652 58.136C222.347 60.8265 222.656 63.586 222.571 66.3349C222.535 67.5035 222.407 68.6443 222.261 69.9376C222.252 70.0239 222.242 70.1108 222.232 70.1984L216.819 118.52C216.617 120.326 216.585 120.681 216.577 120.998C216.551 122 216.683 123.005 216.966 123.978C217.056 124.286 217.179 124.628 217.842 126.353C219.986 131.932 220.498 133.066 221.021 133.823C222.729 136.296 225.453 137.934 228.452 138.293C229.371 138.403 230.621 138.329 236.599 137.636L245.765 136.573C245.982 136.548 246.197 136.523 246.41 136.498C249.515 136.136 252.24 135.818 254.95 135.973C261.351 136.339 267.536 138.666 272.621 142.621C274.775 144.296 276.634 146.338 278.754 148.666C278.899 148.826 279.046 148.987 279.194 149.149L286.838 157.533L271.903 170.384Z" fill="#FF5C00"/>
|
||||
<path d="M216.446 61.0974C229.188 68.7495 201.006 61.9725 210.19 57.5785C213.208 56.1348 228.567 54.1541 237.951 68.3779C247.334 82.6017 251.955 97.4447 275.313 105.98C298.671 114.516 366.392 139.251 366.392 139.251C366.392 139.251 348.763 90.6002 312.638 68.3779C276.513 46.1556 246.209 49.0175 220.962 52.3481C180.889 65.5999 207.013 2.71244 216.446 61.0974Z" fill="#FF5C00"/>
|
||||
<path d="M190.987 218.016C190.987 216.635 192.106 215.516 193.487 215.516H246.276C247.657 215.516 248.776 216.635 248.776 218.016V292.334C248.776 293.715 247.657 294.834 246.276 294.834H193.487C192.106 294.834 190.987 293.715 190.987 292.334V218.016Z" fill="#FF5C00"/>
|
||||
<path d="M125.5 337.893C124.119 337.893 123 336.773 123 335.393V282.603C123 281.223 124.119 280.103 125.5 280.103H215.682C217.063 280.103 218.182 281.223 218.182 282.603V335.393C218.182 336.773 217.063 337.893 215.682 337.893H125.5Z" fill="#FF5C00"/>
|
||||
<path d="M216.15 336.759C214.769 336.759 213.65 335.64 213.65 334.259V281.47C213.65 280.09 214.769 278.97 216.15 278.97H314.264C315.644 278.97 316.764 280.09 316.764 281.47V334.259C316.764 335.64 315.644 336.759 314.264 336.759H216.15Z" fill="#FF5C00"/>
|
||||
<path d="M190.987 329.061C190.987 327.681 192.106 326.561 193.487 326.561H246.276C247.657 326.561 248.776 327.681 248.776 329.061V403.38C248.776 404.76 247.657 405.88 246.276 405.88H193.487C192.106 405.88 190.987 404.76 190.987 403.38V329.061Z" fill="#FF5C00"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
8
dist/citra.xml → dist/mandarine.xml
vendored
@ -4,7 +4,7 @@
|
||||
<comment>Nintendo 3DS homebrew executable</comment>
|
||||
<comment xml:lang="fr">Exécutable non-officiel pour Nintendo 3DS </comment>
|
||||
<acronym>3DSX</acronym>
|
||||
<icon name="citra"/>
|
||||
<icon name="mandarine"/>
|
||||
<glob pattern="*.3dsx"/>
|
||||
<magic><match value="3DSX" type="string" offset="0"/></magic>
|
||||
</mime-type>
|
||||
@ -14,7 +14,7 @@
|
||||
<comment xml:lang="fr">Image de cartouche Nintendo 3DS</comment>
|
||||
<acronym>CCI</acronym>
|
||||
<expanded-acronym>CTR Cart Image</expanded-acronym>
|
||||
<icon name="citra"/>
|
||||
<icon name="mandarine"/>
|
||||
<glob pattern="*.cci"/>
|
||||
<glob pattern="*.3ds"/>
|
||||
<magic><match value="NCSD" type="string" offset="256"/></magic>
|
||||
@ -25,7 +25,7 @@
|
||||
<comment xml:lang="fr">Exécutable Nintendo 3DS</comment>
|
||||
<acronym>CXI</acronym>
|
||||
<expanded-acronym>CTR eXecutable Image</expanded-acronym>
|
||||
<icon name="citra"/>
|
||||
<icon name="mandarine"/>
|
||||
<glob pattern="*.cxi"/>
|
||||
<magic><match value="NCCH" type="string" offset="256"/></magic>
|
||||
</mime-type>
|
||||
@ -35,7 +35,7 @@
|
||||
<comment xml:lang="fr">Archive installable Nintendo 3DS</comment>
|
||||
<acronym>CIA</acronym>
|
||||
<expanded-acronym>CTR Importable Archive</expanded-acronym>
|
||||
<icon name="citra"/>
|
||||
<icon name="mandarine"/>
|
||||
<glob pattern="*.cia"/>
|
||||
</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/plus.png">icons/48x48/plus.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/mandarine.png">icons/256x256/mandarine.png</file>
|
||||
<file alias="48x48/star.png">icons/48x48/star.png</file>
|
||||
<file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file>
|
||||
</qresource>
|
||||
|
BIN
dist/qt_themes/default/icons/256x256/citra.png
vendored
Before Width: | Height: | Size: 26 KiB |
BIN
dist/qt_themes/default/icons/256x256/mandarine.png
vendored
Normal file
After Width: | Height: | Size: 8.3 KiB |
@ -11,10 +11,10 @@ class RequestType(enum.IntEnum):
|
||||
ReadMemory = 1,
|
||||
WriteMemory = 2
|
||||
|
||||
CITRA_PORT = 45987
|
||||
MANDARINE_PORT = 45987
|
||||
|
||||
class Citra:
|
||||
def __init__(self, address="127.0.0.1", port=CITRA_PORT):
|
||||
class Mandarine:
|
||||
def __init__(self, address="127.0.0.1", port=MANDARINE_PORT):
|
||||
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
self.address = address
|
||||
|
||||
@ -45,7 +45,7 @@ class Citra:
|
||||
request_data = struct.pack("II", read_address, temp_read_size)
|
||||
request, request_id = self._generate_header(RequestType.ReadMemory, len(request_data))
|
||||
request += request_data
|
||||
self.socket.sendto(request, (self.address, CITRA_PORT))
|
||||
self.socket.sendto(request, (self.address, MANDARINE_PORT))
|
||||
|
||||
raw_reply = self.socket.recv(MAX_PACKET_SIZE)
|
||||
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, request_id = self._generate_header(RequestType.WriteMemory, len(request_data))
|
||||
request += request_data
|
||||
self.socket.sendto(request, (self.address, CITRA_PORT))
|
||||
self.socket.sendto(request, (self.address, MANDARINE_PORT))
|
||||
|
||||
raw_reply = self.socket.recv(MAX_PACKET_SIZE)
|
||||
reply_data = self._read_and_validate_header(raw_reply, request_id, RequestType.WriteMemory)
|
||||
@ -92,4 +92,4 @@ class Citra:
|
||||
|
||||
if "__main__" == __name__:
|
||||
import doctest
|
||||
doctest.testmod(extraglobs={'c': Citra()})
|
||||
doctest.testmod(extraglobs={'c': Mandarine()})
|
6
externals/CMakeLists.txt
vendored
@ -116,7 +116,7 @@ if ("x86_64" IN_LIST ARCHITECTURE OR "arm64" IN_LIST ARCHITECTURE)
|
||||
else()
|
||||
set(DYNARMIC_TESTS OFF CACHE BOOL "")
|
||||
set(DYNARMIC_FRONTENDS "A32" CACHE STRING "")
|
||||
set(DYNARMIC_USE_PRECOMPILED_HEADERS ${CITRA_USE_PRECOMPILED_HEADERS} CACHE BOOL "")
|
||||
set(DYNARMIC_USE_PRECOMPILED_HEADERS ${MANDARINE_USE_PRECOMPILED_HEADERS} CACHE BOOL "")
|
||||
add_subdirectory(dynarmic EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
endif()
|
||||
@ -265,7 +265,7 @@ if (USE_SYSTEM_JSON)
|
||||
target_link_libraries(json-headers INTERFACE nlohmann_json::nlohmann_json)
|
||||
get_target_property(NLOHMANN_PREFIX nlohmann_json::nlohmann_json INTERFACE_INCLUDE_DIRECTORIES)
|
||||
# The nlohmann-json3 package expects "#include <nlohmann/json.hpp>"
|
||||
# Citra uses "#include <json.hpp>" so we have to add this manually
|
||||
# Mandarine uses "#include <json.hpp>" so we have to add this manually
|
||||
target_include_directories(json-headers SYSTEM INTERFACE "${NLOHMANN_PREFIX}/nlohmann")
|
||||
else()
|
||||
target_include_directories(json-headers SYSTEM INTERFACE ./json)
|
||||
@ -296,7 +296,7 @@ add_library(httplib INTERFACE)
|
||||
if(USE_SYSTEM_CPP_HTTPLIB)
|
||||
find_package(CppHttp 0.14.1)
|
||||
# Detect if system cpphttplib is a shared library
|
||||
# this breaks building as Citra relies on functions that are moved
|
||||
# this breaks building as Mandarine relies on functions that are moved
|
||||
# into the shared object.
|
||||
get_target_property(HTTP_LIBS httplib::httplib INTERFACE_LINK_LIBRARIES)
|
||||
if(HTTP_LIBS)
|
||||
|
2
externals/glad/Readme.md
vendored
@ -6,6 +6,6 @@ python -m glad --profile core --out-path glad/ --api "gl=4.3,gles2=3.2" --genera
|
||||
|
||||
You can also generate the source using [this site](https://glad.dav1d.de/):
|
||||
1. Select '4.3' for GL, '3.2' for GLES2, and 'Core' for Profile.
|
||||
2. Input the currently supported extensions from [here](https://github.com/citra-emu/citra/blob/master/externals/glad/include/glad/glad.h#L9), plus any new required extensions.
|
||||
2. Input the currently supported extensions from [here](https://github.com/mandarine3ds/mandarine/blob/master/externals/glad/include/glad/glad.h#L9), plus any new required extensions.
|
||||
3. Click Generate and download the generated source zip.
|
||||
4. Unzip the new source over the current glad source files.
|
2
externals/open_source_archives/Readme.md
vendored
@ -1,4 +1,4 @@
|
||||
These files were generated by https://github.com/B3n30/citra_system_archives at git commit 0baa5f5773432f04e3e671859780ded965c4248c. To generate the files use the run.sh inside that repository
|
||||
These files were generated by https://github.com/B3n30/mandarine_system_archives at git commit 0baa5f5773432f04e3e671859780ded965c4248c. To generate the files use the run.sh inside that repository
|
||||
|
||||
The follwing system archives are currently included:
|
||||
- JPN/EUR/USA System Font
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Enforce citra's whitespace policy
|
||||
# Enforce mandarine's whitespace policy
|
||||
git config --local core.whitespace tab-in-indent,trailing-space
|
||||
|
||||
paths_to_check="src/ CMakeLists.txt"
|
||||
|
@ -353,7 +353,7 @@ plus_folder.png | CC BY-ND 3.0 | https://icons8.com
|
||||
bad_folder.png | CC BY-ND 3.0 | https://icons8.com
|
||||
chip.png | CC BY-ND 3.0 | https://icons8.com
|
||||
folder.png | CC BY-ND 3.0 | https://icons8.com
|
||||
plus.png (Default, Dark) | CC0 1.0 | Designed by BreadFish64 from the Citra team
|
||||
plus.png (Default, Dark) | CC0 1.0 | Designed by BreadFish64 from the Mandarine team
|
||||
plus.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
|
||||
sd_card.png | CC BY-ND 3.0 | https://icons8.com
|
||||
star.png | CC BY-ND 3.0 | https://icons8.com
|
||||
|
@ -89,14 +89,14 @@ if (MSVC)
|
||||
/wd4324 # 'struct_name': structure was padded due to __declspec(align())
|
||||
)
|
||||
|
||||
if (CITRA_WARNINGS_AS_ERRORS)
|
||||
if (MANDARINE_WARNINGS_AS_ERRORS)
|
||||
add_compile_options(/WX)
|
||||
endif()
|
||||
|
||||
# Since MSVC's debugging information is not very deterministic, so we have to disable it
|
||||
# when using ccache or other caching tools
|
||||
if (CMAKE_C_COMPILER_LAUNCHER STREQUAL "ccache" OR CMAKE_CXX_COMPILER_LAUNCHER STREQUAL "ccache"
|
||||
OR CITRA_USE_PRECOMPILED_HEADERS)
|
||||
OR MANDARINE_USE_PRECOMPILED_HEADERS)
|
||||
# Precompiled headers are deleted if not using /Z7. See https://github.com/nanoant/CMakePCHCompiler/issues/21
|
||||
add_compile_options(/Z7)
|
||||
else()
|
||||
@ -124,7 +124,7 @@ else()
|
||||
add_compile_options(-Wp,-D_FORTIFY_SOURCE=2)
|
||||
endif()
|
||||
|
||||
if (CITRA_WARNINGS_AS_ERRORS)
|
||||
if (MANDARINE_WARNINGS_AS_ERRORS)
|
||||
add_compile_options(-Werror)
|
||||
endif()
|
||||
|
||||
@ -185,11 +185,11 @@ if (ENABLE_TESTS)
|
||||
endif()
|
||||
|
||||
if (ENABLE_SDL2 AND ENABLE_SDL2_FRONTEND)
|
||||
add_subdirectory(citra)
|
||||
add_subdirectory(mandarine)
|
||||
endif()
|
||||
|
||||
if (ENABLE_QT)
|
||||
add_subdirectory(citra_qt)
|
||||
add_subdirectory(mandarine_qt)
|
||||
endif()
|
||||
|
||||
if (ENABLE_DEDICATED_ROOM)
|
||||
@ -198,7 +198,7 @@ endif()
|
||||
|
||||
if (ANDROID)
|
||||
add_subdirectory(android/app/src/main/jni)
|
||||
target_include_directories(citra-android PRIVATE android/app/src/main)
|
||||
target_include_directories(mandarine-android PRIVATE android/app/src/main)
|
||||
endif()
|
||||
|
||||
if (ENABLE_WEB_SERVICE)
|
||||
|
@ -26,7 +26,7 @@ val downloadedJniLibsPath = "${buildDir}/downloadedJniLibs"
|
||||
|
||||
@Suppress("UnstableApiUsage")
|
||||
android {
|
||||
namespace = "org.citra.citra_emu"
|
||||
namespace = "io.github.mandarine3ds.mandarine"
|
||||
|
||||
compileSdkVersion = "android-34"
|
||||
ndkVersion = "26.3.11579264"
|
||||
@ -61,7 +61,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
// TODO If this is ever modified, change application_id in strings.xml
|
||||
applicationId = "org.citra.citra_emu"
|
||||
applicationId = "io.github.mandarine3ds.mandarine"
|
||||
minSdk = 28
|
||||
targetSdk = 34
|
||||
versionCode = autoVersion
|
||||
|
@ -33,7 +33,7 @@
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
|
||||
<application
|
||||
android:name="org.citra.citra_emu.CitraApplication"
|
||||
android:name="io.github.mandarine3ds.mandarine.MandarineApplication"
|
||||
android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:allowBackup="false"
|
||||
@ -46,8 +46,8 @@
|
||||
android:resource="@xml/game_mode_config" />
|
||||
|
||||
<activity
|
||||
android:name="org.citra.citra_emu.ui.main.MainActivity"
|
||||
android:theme="@style/Theme.Citra.Splash.Main"
|
||||
android:name="io.github.mandarine3ds.mandarine.ui.main.MainActivity"
|
||||
android:theme="@style/Theme.Mandarine.Splash.Main"
|
||||
android:exported="true">
|
||||
|
||||
<!-- This intentfilter marks this Activity as the one that gets launched from Home screen. -->
|
||||
@ -59,15 +59,15 @@
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="org.citra.citra_emu.features.settings.ui.SettingsActivity"
|
||||
android:name="io.github.mandarine3ds.mandarine.features.settings.ui.SettingsActivity"
|
||||
android:configChanges="orientation|screenSize|uiMode"
|
||||
android:theme="@style/Theme.Citra.Main"
|
||||
android:theme="@style/Theme.Mandarine.Main"
|
||||
android:label="@string/preferences_settings"/>
|
||||
|
||||
<activity
|
||||
android:name="org.citra.citra_emu.activities.EmulationActivity"
|
||||
android:name="io.github.mandarine3ds.mandarine.activities.EmulationActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/Theme.Citra.Main"
|
||||
android:theme="@style/Theme.Mandarine.Main"
|
||||
android:launchMode="singleTop">
|
||||
|
||||
<intent-filter>
|
||||
@ -80,14 +80,14 @@
|
||||
|
||||
</activity>
|
||||
|
||||
<service android:name="org.citra.citra_emu.utils.ForegroundService" android:foregroundServiceType="specialUse">
|
||||
<service android:name="io.github.mandarine3ds.mandarine.utils.ForegroundService" android:foregroundServiceType="specialUse">
|
||||
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="Keep emulation running in background"/>
|
||||
</service>
|
||||
|
||||
<activity
|
||||
android:name="org.citra.citra_emu.features.cheats.ui.CheatsActivity"
|
||||
android:name="io.github.mandarine3ds.mandarine.features.cheats.ui.CheatsActivity"
|
||||
android:exported="false"
|
||||
android:theme="@style/Theme.Citra.Main"
|
||||
android:theme="@style/Theme.Mandarine.Main"
|
||||
android:label="@string/cheats"/>
|
||||
</application>
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu
|
||||
package io.github.mandarine3ds.mandarine
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
@ -10,13 +10,13 @@ import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import org.citra.citra_emu.utils.DirectoryInitialization
|
||||
import org.citra.citra_emu.utils.DocumentsTree
|
||||
import org.citra.citra_emu.utils.PermissionsHandler
|
||||
import org.citra.citra_emu.utils.Log
|
||||
import org.citra.citra_emu.utils.MemoryUtil
|
||||
import io.github.mandarine3ds.mandarine.utils.DirectoryInitialization
|
||||
import io.github.mandarine3ds.mandarine.utils.DocumentsTree
|
||||
import io.github.mandarine3ds.mandarine.utils.PermissionsHandler
|
||||
import io.github.mandarine3ds.mandarine.utils.Log
|
||||
import io.github.mandarine3ds.mandarine.utils.MemoryUtil
|
||||
|
||||
class CitraApplication : Application() {
|
||||
class MandarineApplication : Application() {
|
||||
private fun createNotificationChannel() {
|
||||
with(getSystemService(NotificationManager::class.java)) {
|
||||
// General notification
|
||||
@ -70,7 +70,7 @@ class CitraApplication : Application() {
|
||||
}
|
||||
|
||||
companion object {
|
||||
private var application: CitraApplication? = null
|
||||
private var application: MandarineApplication? = null
|
||||
|
||||
val appContext: Context get() = application!!.applicationContext
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu
|
||||
package io.github.mandarine3ds.mandarine
|
||||
|
||||
import android.Manifest.permission
|
||||
import android.app.Dialog
|
||||
@ -20,16 +20,16 @@ import androidx.annotation.Keep
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.citra.citra_emu.activities.EmulationActivity
|
||||
import org.citra.citra_emu.utils.EmulationMenuSettings
|
||||
import org.citra.citra_emu.utils.FileUtil
|
||||
import org.citra.citra_emu.utils.Log
|
||||
import io.github.mandarine3ds.mandarine.activities.EmulationActivity
|
||||
import io.github.mandarine3ds.mandarine.utils.EmulationMenuSettings
|
||||
import io.github.mandarine3ds.mandarine.utils.FileUtil
|
||||
import io.github.mandarine3ds.mandarine.utils.Log
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.Date
|
||||
|
||||
/**
|
||||
* Class which contains methods that interact
|
||||
* with the native side of the Citra code.
|
||||
* with the native side of the Mandarine code.
|
||||
*/
|
||||
object NativeLibrary {
|
||||
/**
|
||||
@ -44,7 +44,7 @@ object NativeLibrary {
|
||||
|
||||
init {
|
||||
try {
|
||||
System.loadLibrary("citra-android")
|
||||
System.loadLibrary("mandarine-android")
|
||||
} catch (ex: UnsatisfiedLinkError) {
|
||||
Log.error("[NativeLibrary] $ex")
|
||||
}
|
||||
@ -259,7 +259,7 @@ object NativeLibrary {
|
||||
@get:Keep
|
||||
@get:JvmStatic
|
||||
val isPortraitMode: Boolean
|
||||
get() = CitraApplication.appContext.resources.configuration.orientation ==
|
||||
get() = MandarineApplication.appContext.resources.configuration.orientation ==
|
||||
Configuration.ORIENTATION_PORTRAIT
|
||||
|
||||
@Keep
|
||||
@ -391,9 +391,9 @@ object NativeLibrary {
|
||||
.setMessage(
|
||||
Html.fromHtml(
|
||||
if (result == ErrorArticDisconnected)
|
||||
CitraApplication.appContext.resources.getString(R.string.artic_server_comm_error)
|
||||
MandarineApplication.appContext.resources.getString(R.string.artic_server_comm_error)
|
||||
else
|
||||
CitraApplication.appContext.resources.getString(R.string.redump_games),
|
||||
MandarineApplication.appContext.resources.getString(R.string.redump_games),
|
||||
Html.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
)
|
||||
@ -554,7 +554,7 @@ object NativeLibrary {
|
||||
external fun loadState(slot: Int)
|
||||
|
||||
/**
|
||||
* Logs the Citra version, Android version and, CPU.
|
||||
* Logs the Mandarine version, Android version and, CPU.
|
||||
*/
|
||||
external fun logDeviceInfo()
|
||||
|
||||
@ -562,7 +562,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun createFile(directory: String, filename: String): Boolean =
|
||||
if (FileUtil.isNativePath(directory)) {
|
||||
CitraApplication.documentsTree.createFile(directory, filename)
|
||||
MandarineApplication.documentsTree.createFile(directory, filename)
|
||||
} else {
|
||||
FileUtil.createFile(directory, filename) != null
|
||||
}
|
||||
@ -571,7 +571,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun createDir(directory: String, directoryName: String): Boolean =
|
||||
if (FileUtil.isNativePath(directory)) {
|
||||
CitraApplication.documentsTree.createDir(directory, directoryName)
|
||||
MandarineApplication.documentsTree.createDir(directory, directoryName)
|
||||
} else {
|
||||
FileUtil.createDir(directory, directoryName) != null
|
||||
}
|
||||
@ -580,7 +580,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun openContentUri(path: String, openMode: String): Int =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.openContentUri(path, openMode)
|
||||
MandarineApplication.documentsTree.openContentUri(path, openMode)
|
||||
} else {
|
||||
FileUtil.openContentUri(path, openMode)
|
||||
}
|
||||
@ -589,7 +589,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun getFilesName(path: String): Array<String?> =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.getFilesName(path)
|
||||
MandarineApplication.documentsTree.getFilesName(path)
|
||||
} else {
|
||||
FileUtil.getFilesName(path)
|
||||
}
|
||||
@ -598,7 +598,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun getSize(path: String): Long =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.getFileSize(path)
|
||||
MandarineApplication.documentsTree.getFileSize(path)
|
||||
} else {
|
||||
FileUtil.getFileSize(path)
|
||||
}
|
||||
@ -607,7 +607,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun fileExists(path: String): Boolean =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.exists(path)
|
||||
MandarineApplication.documentsTree.exists(path)
|
||||
} else {
|
||||
FileUtil.exists(path)
|
||||
}
|
||||
@ -616,7 +616,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun isDirectory(path: String): Boolean =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.isDirectory(path)
|
||||
MandarineApplication.documentsTree.isDirectory(path)
|
||||
} else {
|
||||
FileUtil.isDirectory(path)
|
||||
}
|
||||
@ -631,7 +631,7 @@ object NativeLibrary {
|
||||
if (FileUtil.isNativePath(sourcePath) &&
|
||||
FileUtil.isNativePath(destinationParentPath)
|
||||
) {
|
||||
CitraApplication.documentsTree
|
||||
MandarineApplication.documentsTree
|
||||
.copyFile(sourcePath, destinationParentPath, destinationFilename)
|
||||
} else {
|
||||
FileUtil.copyFile(
|
||||
@ -645,7 +645,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun renameFile(path: String, destinationFilename: String): Boolean =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.renameFile(path, destinationFilename)
|
||||
MandarineApplication.documentsTree.renameFile(path, destinationFilename)
|
||||
} else {
|
||||
FileUtil.renameFile(path, destinationFilename)
|
||||
}
|
||||
@ -654,7 +654,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun deleteDocument(path: String): Boolean =
|
||||
if (FileUtil.isNativePath(path)) {
|
||||
CitraApplication.documentsTree.deleteDocument(path)
|
||||
MandarineApplication.documentsTree.deleteDocument(path)
|
||||
} else {
|
||||
FileUtil.deleteDocument(path)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.activities
|
||||
package io.github.mandarine3ds.mandarine.activities
|
||||
|
||||
import android.Manifest.permission
|
||||
import android.annotation.SuppressLint
|
||||
@ -25,29 +25,29 @@ import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.preference.PreferenceManager
|
||||
import org.citra.citra_emu.CitraApplication
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.camera.StillImageCameraHelper.OnFilePickerResult
|
||||
import org.citra.citra_emu.contracts.OpenFileResultContract
|
||||
import org.citra.citra_emu.databinding.ActivityEmulationBinding
|
||||
import org.citra.citra_emu.display.ScreenAdjustmentUtil
|
||||
import org.citra.citra_emu.features.hotkeys.HotkeyUtility
|
||||
import org.citra.citra_emu.features.settings.model.BooleanSetting
|
||||
import org.citra.citra_emu.features.settings.model.SettingsViewModel
|
||||
import org.citra.citra_emu.features.settings.model.view.InputBindingSetting
|
||||
import org.citra.citra_emu.fragments.EmulationFragment
|
||||
import org.citra.citra_emu.fragments.MessageDialogFragment
|
||||
import org.citra.citra_emu.utils.ControllerMappingHelper
|
||||
import org.citra.citra_emu.utils.FileBrowserHelper
|
||||
import org.citra.citra_emu.utils.EmulationLifecycleUtil
|
||||
import org.citra.citra_emu.utils.EmulationMenuSettings
|
||||
import org.citra.citra_emu.utils.ThemeUtil
|
||||
import org.citra.citra_emu.viewmodel.EmulationViewModel
|
||||
import io.github.mandarine3ds.mandarine.MandarineApplication
|
||||
import io.github.mandarine3ds.mandarine.NativeLibrary
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.camera.StillImageCameraHelper.OnFilePickerResult
|
||||
import io.github.mandarine3ds.mandarine.contracts.OpenFileResultContract
|
||||
import io.github.mandarine3ds.mandarine.databinding.ActivityEmulationBinding
|
||||
import io.github.mandarine3ds.mandarine.display.ScreenAdjustmentUtil
|
||||
import io.github.mandarine3ds.mandarine.features.hotkeys.HotkeyUtility
|
||||
import io.github.mandarine3ds.mandarine.features.settings.model.BooleanSetting
|
||||
import io.github.mandarine3ds.mandarine.features.settings.model.SettingsViewModel
|
||||
import io.github.mandarine3ds.mandarine.features.settings.model.view.InputBindingSetting
|
||||
import io.github.mandarine3ds.mandarine.fragments.EmulationFragment
|
||||
import io.github.mandarine3ds.mandarine.fragments.MessageDialogFragment
|
||||
import io.github.mandarine3ds.mandarine.utils.ControllerMappingHelper
|
||||
import io.github.mandarine3ds.mandarine.utils.FileBrowserHelper
|
||||
import io.github.mandarine3ds.mandarine.utils.EmulationLifecycleUtil
|
||||
import io.github.mandarine3ds.mandarine.utils.EmulationMenuSettings
|
||||
import io.github.mandarine3ds.mandarine.utils.ThemeUtil
|
||||
import io.github.mandarine3ds.mandarine.viewmodel.EmulationViewModel
|
||||
|
||||
class EmulationActivity : AppCompatActivity() {
|
||||
private val preferences: SharedPreferences
|
||||
get() = PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)
|
||||
get() = PreferenceManager.getDefaultSharedPreferences(MandarineApplication.appContext)
|
||||
var isActivityRecreated = false
|
||||
private val emulationViewModel: EmulationViewModel by viewModels()
|
||||
private val settingsViewModel: SettingsViewModel by viewModels()
|
||||
@ -89,7 +89,7 @@ class EmulationActivity : AppCompatActivity() {
|
||||
// Set these options now so that the SurfaceView the game renders into is the right size.
|
||||
enableFullscreenImmersive()
|
||||
|
||||
// Override Citra core INI with the one set by our in game menu
|
||||
// Override Mandarine core INI with the one set by our in game menu
|
||||
NativeLibrary.swapScreens(
|
||||
EmulationMenuSettings.swapScreens,
|
||||
windowManager.defaultDisplay.rotation
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.adapters
|
||||
package io.github.mandarine3ds.mandarine.adapters
|
||||
|
||||
import android.net.Uri
|
||||
import android.text.TextUtils
|
||||
@ -13,11 +13,11 @@ import androidx.recyclerview.widget.AsyncDifferConfig
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.databinding.CardDriverOptionBinding
|
||||
import org.citra.citra_emu.utils.GpuDriverMetadata
|
||||
import org.citra.citra_emu.viewmodel.DriverViewModel
|
||||
import org.citra.citra_emu.utils.GpuDriverHelper
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.databinding.CardDriverOptionBinding
|
||||
import io.github.mandarine3ds.mandarine.utils.GpuDriverMetadata
|
||||
import io.github.mandarine3ds.mandarine.viewmodel.DriverViewModel
|
||||
import io.github.mandarine3ds.mandarine.utils.GpuDriverHelper
|
||||
|
||||
class DriverAdapter(private val driverViewModel: DriverViewModel) :
|
||||
ListAdapter<Pair<Uri, GpuDriverMetadata>, DriverAdapter.DriverViewHolder>(
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.adapters
|
||||
package io.github.mandarine3ds.mandarine.adapters
|
||||
|
||||
import android.net.Uri
|
||||
import android.os.SystemClock
|
||||
@ -28,17 +28,17 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import org.citra.citra_emu.HomeNavigationDirections
|
||||
import org.citra.citra_emu.CitraApplication
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.adapters.GameAdapter.GameViewHolder
|
||||
import org.citra.citra_emu.databinding.CardGameBinding
|
||||
import org.citra.citra_emu.features.cheats.ui.CheatsFragmentDirections
|
||||
import org.citra.citra_emu.model.Game
|
||||
import org.citra.citra_emu.utils.GameIconUtils
|
||||
import org.citra.citra_emu.viewmodel.GamesViewModel
|
||||
import org.citra.citra_emu.features.settings.ui.SettingsActivity
|
||||
import org.citra.citra_emu.features.settings.utils.SettingsFile
|
||||
import io.github.mandarine3ds.mandarine.HomeNavigationDirections
|
||||
import io.github.mandarine3ds.mandarine.MandarineApplication
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.adapters.GameAdapter.GameViewHolder
|
||||
import io.github.mandarine3ds.mandarine.databinding.CardGameBinding
|
||||
import io.github.mandarine3ds.mandarine.features.cheats.ui.CheatsFragmentDirections
|
||||
import io.github.mandarine3ds.mandarine.model.Game
|
||||
import io.github.mandarine3ds.mandarine.utils.GameIconUtils
|
||||
import io.github.mandarine3ds.mandarine.viewmodel.GamesViewModel
|
||||
import io.github.mandarine3ds.mandarine.features.settings.ui.SettingsActivity
|
||||
import io.github.mandarine3ds.mandarine.features.settings.utils.SettingsFile
|
||||
|
||||
class GameAdapter(private val activity: AppCompatActivity, private val inflater: LayoutInflater) :
|
||||
ListAdapter<Game, GameViewHolder>(AsyncDifferConfig.Builder(DiffCallback()).build()),
|
||||
@ -77,7 +77,7 @@ class GameAdapter(private val activity: AppCompatActivity, private val inflater:
|
||||
gameExists(holder)
|
||||
|
||||
val preferences =
|
||||
PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)
|
||||
PreferenceManager.getDefaultSharedPreferences(MandarineApplication.appContext)
|
||||
preferences.edit()
|
||||
.putLong(
|
||||
holder.game.keyLastPlayedTime,
|
||||
@ -118,12 +118,12 @@ class GameAdapter(private val activity: AppCompatActivity, private val inflater:
|
||||
}
|
||||
|
||||
val gameExists = DocumentFile.fromSingleUri(
|
||||
CitraApplication.appContext,
|
||||
MandarineApplication.appContext,
|
||||
Uri.parse(holder.game.path)
|
||||
)?.exists() == true
|
||||
return if (!gameExists) {
|
||||
Toast.makeText(
|
||||
CitraApplication.appContext,
|
||||
MandarineApplication.appContext,
|
||||
R.string.loader_error_file_not_found,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.adapters
|
||||
package io.github.mandarine3ds.mandarine.adapters
|
||||
|
||||
import android.text.TextUtils
|
||||
import android.view.LayoutInflater
|
||||
@ -16,9 +16,9 @@ import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import kotlinx.coroutines.launch
|
||||
import org.citra.citra_emu.databinding.CardHomeOptionBinding
|
||||
import org.citra.citra_emu.fragments.MessageDialogFragment
|
||||
import org.citra.citra_emu.model.HomeSetting
|
||||
import io.github.mandarine3ds.mandarine.databinding.CardHomeOptionBinding
|
||||
import io.github.mandarine3ds.mandarine.fragments.MessageDialogFragment
|
||||
import io.github.mandarine3ds.mandarine.model.HomeSetting
|
||||
|
||||
class HomeSettingAdapter(
|
||||
private val activity: AppCompatActivity,
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.adapters
|
||||
package io.github.mandarine3ds.mandarine.adapters
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@ -10,10 +10,10 @@ import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder
|
||||
import org.citra.citra_emu.CitraApplication
|
||||
import org.citra.citra_emu.databinding.ListItemSettingBinding
|
||||
import org.citra.citra_emu.fragments.LicenseBottomSheetDialogFragment
|
||||
import org.citra.citra_emu.model.License
|
||||
import io.github.mandarine3ds.mandarine.MandarineApplication
|
||||
import io.github.mandarine3ds.mandarine.databinding.ListItemSettingBinding
|
||||
import io.github.mandarine3ds.mandarine.fragments.LicenseBottomSheetDialogFragment
|
||||
import io.github.mandarine3ds.mandarine.model.License
|
||||
|
||||
class LicenseAdapter(private val activity: AppCompatActivity, var licenses: List<License>) :
|
||||
RecyclerView.Adapter<LicenseAdapter.LicenseViewHolder>(),
|
||||
@ -47,7 +47,7 @@ class LicenseAdapter(private val activity: AppCompatActivity, var licenses: List
|
||||
fun bind(license: License) {
|
||||
this.license = license
|
||||
|
||||
val context = CitraApplication.appContext
|
||||
val context = MandarineApplication.appContext
|
||||
binding.textSettingName.text = context.getString(license.titleId)
|
||||
binding.textSettingDescription.text = context.getString(license.descriptionId)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.adapters
|
||||
package io.github.mandarine3ds.mandarine.adapters
|
||||
|
||||
import android.text.Html
|
||||
import android.text.method.LinkMovementMethod
|
||||
@ -12,11 +12,11 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import org.citra.citra_emu.databinding.PageSetupBinding
|
||||
import org.citra.citra_emu.model.SetupCallback
|
||||
import org.citra.citra_emu.model.SetupPage
|
||||
import org.citra.citra_emu.model.StepState
|
||||
import org.citra.citra_emu.utils.ViewUtils
|
||||
import io.github.mandarine3ds.mandarine.databinding.PageSetupBinding
|
||||
import io.github.mandarine3ds.mandarine.model.SetupCallback
|
||||
import io.github.mandarine3ds.mandarine.model.SetupPage
|
||||
import io.github.mandarine3ds.mandarine.model.StepState
|
||||
import io.github.mandarine3ds.mandarine.utils.ViewUtils
|
||||
|
||||
class SetupAdapter(val activity: AppCompatActivity, val pages: List<SetupPage>) :
|
||||
RecyclerView.Adapter<SetupAdapter.SetupPageViewHolder>() {
|
@ -2,11 +2,11 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.applets
|
||||
package io.github.mandarine3ds.mandarine.applets
|
||||
|
||||
import androidx.annotation.Keep
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.fragments.MiiSelectorDialogFragment
|
||||
import io.github.mandarine3ds.mandarine.NativeLibrary
|
||||
import io.github.mandarine3ds.mandarine.fragments.MiiSelectorDialogFragment
|
||||
import java.io.Serializable
|
||||
|
||||
@Keep
|
@ -2,17 +2,17 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.applets
|
||||
package io.github.mandarine3ds.mandarine.applets
|
||||
|
||||
import android.text.InputFilter
|
||||
import android.text.Spanned
|
||||
import androidx.annotation.Keep
|
||||
import org.citra.citra_emu.CitraApplication.Companion.appContext
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.fragments.KeyboardDialogFragment
|
||||
import org.citra.citra_emu.fragments.MessageDialogFragment
|
||||
import org.citra.citra_emu.utils.Log
|
||||
import io.github.mandarine3ds.mandarine.MandarineApplication.Companion.appContext
|
||||
import io.github.mandarine3ds.mandarine.NativeLibrary
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.fragments.KeyboardDialogFragment
|
||||
import io.github.mandarine3ds.mandarine.fragments.MessageDialogFragment
|
||||
import io.github.mandarine3ds.mandarine.utils.Log
|
||||
import java.io.Serializable
|
||||
|
||||
@Keep
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.camera
|
||||
package io.github.mandarine3ds.mandarine.camera
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import androidx.activity.result.PickVisualMediaRequest
|
||||
@ -12,8 +12,8 @@ import androidx.core.graphics.drawable.toBitmap
|
||||
import coil.executeBlocking
|
||||
import coil.imageLoader
|
||||
import coil.request.ImageRequest
|
||||
import org.citra.citra_emu.CitraApplication
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import io.github.mandarine3ds.mandarine.MandarineApplication
|
||||
import io.github.mandarine3ds.mandarine.NativeLibrary
|
||||
|
||||
// Used in native code.
|
||||
object StillImageCameraHelper {
|
||||
@ -53,7 +53,7 @@ object StillImageCameraHelper {
|
||||
@Keep
|
||||
@JvmStatic
|
||||
fun LoadImageFromFile(uri: String?, width: Int, height: Int): Bitmap? {
|
||||
val context = CitraApplication.appContext
|
||||
val context = MandarineApplication.appContext
|
||||
val request = ImageRequest.Builder(context)
|
||||
.data(uri)
|
||||
.size(width, height)
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.contracts
|
||||
package io.github.mandarine3ds.mandarine.contracts
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
@ -2,15 +2,15 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.display
|
||||
package io.github.mandarine3ds.mandarine.display
|
||||
|
||||
import android.view.WindowManager
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.features.settings.model.BooleanSetting
|
||||
import org.citra.citra_emu.features.settings.model.IntSetting
|
||||
import org.citra.citra_emu.features.settings.model.Settings
|
||||
import org.citra.citra_emu.features.settings.utils.SettingsFile
|
||||
import org.citra.citra_emu.utils.EmulationMenuSettings
|
||||
import io.github.mandarine3ds.mandarine.NativeLibrary
|
||||
import io.github.mandarine3ds.mandarine.features.settings.model.BooleanSetting
|
||||
import io.github.mandarine3ds.mandarine.features.settings.model.IntSetting
|
||||
import io.github.mandarine3ds.mandarine.features.settings.model.Settings
|
||||
import io.github.mandarine3ds.mandarine.features.settings.utils.SettingsFile
|
||||
import io.github.mandarine3ds.mandarine.utils.EmulationMenuSettings
|
||||
|
||||
class ScreenAdjustmentUtil(private val windowManager: WindowManager,
|
||||
private val settings: Settings) {
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.display
|
||||
package io.github.mandarine3ds.mandarine.display
|
||||
|
||||
enum class ScreenLayout(val int: Int) {
|
||||
// These must match what is defined in src/common/settings.h
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.features.cheats.model
|
||||
package io.github.mandarine3ds.mandarine.features.cheats.model
|
||||
|
||||
import androidx.annotation.Keep
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.features.cheats.model
|
||||
package io.github.mandarine3ds.mandarine.features.cheats.model
|
||||
|
||||
import androidx.annotation.Keep
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.features.cheats.model
|
||||
package io.github.mandarine3ds.mandarine.features.cheats.model
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.features.cheats.ui
|
||||
package io.github.mandarine3ds.mandarine.features.cheats.ui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.DialogInterface
|
||||
@ -21,10 +21,10 @@ import androidx.lifecycle.repeatOnLifecycle
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import kotlinx.coroutines.flow.collect
|
||||
import kotlinx.coroutines.launch
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.databinding.FragmentCheatDetailsBinding
|
||||
import org.citra.citra_emu.features.cheats.model.Cheat
|
||||
import org.citra.citra_emu.features.cheats.model.CheatsViewModel
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.databinding.FragmentCheatDetailsBinding
|
||||
import io.github.mandarine3ds.mandarine.features.cheats.model.Cheat
|
||||
import io.github.mandarine3ds.mandarine.features.cheats.model.CheatsViewModel
|
||||
|
||||
class CheatDetailsFragment : Fragment() {
|
||||
private val cheatsViewModel: CheatsViewModel by activityViewModels()
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.features.cheats.ui
|
||||
package io.github.mandarine3ds.mandarine.features.cheats.ui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
@ -22,10 +22,10 @@ import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.google.android.material.divider.MaterialDividerItemDecoration
|
||||
import kotlinx.coroutines.launch
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.databinding.FragmentCheatListBinding
|
||||
import org.citra.citra_emu.features.cheats.model.CheatsViewModel
|
||||
import org.citra.citra_emu.ui.main.MainActivity
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.databinding.FragmentCheatListBinding
|
||||
import io.github.mandarine3ds.mandarine.features.cheats.model.CheatsViewModel
|
||||
import io.github.mandarine3ds.mandarine.ui.main.MainActivity
|
||||
|
||||
class CheatListFragment : Fragment() {
|
||||
private var _binding: FragmentCheatListBinding? = null
|
@ -2,7 +2,7 @@
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
package org.citra.citra_emu.features.cheats.ui
|
||||
package io.github.mandarine3ds.mandarine.features.cheats.ui
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
@ -12,10 +12,10 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.databinding.ActivityCheatsBinding
|
||||
import org.citra.citra_emu.utils.InsetsHelper
|
||||
import org.citra.citra_emu.utils.ThemeUtil
|
||||
import io.github.mandarine3ds.mandarine.R
|
||||
import io.github.mandarine3ds.mandarine.databinding.ActivityCheatsBinding
|
||||
import io.github.mandarine3ds.mandarine.utils.InsetsHelper
|
||||
import io.github.mandarine3ds.mandarine.utils.ThemeUtil
|
||||
|
||||
class CheatsActivity : AppCompatActivity() {
|
||||
private lateinit var binding: ActivityCheatsBinding
|