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.
This commit is contained in:
Gamer64ytb 2024-07-27 15:27:58 +02:00
parent 1211469379
commit f773bbd0a3
581 changed files with 35488 additions and 35966 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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?

View File

@ -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.

View File

@ -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

View File

@ -1,4 +1,4 @@
name: citra-build
name: mandarine-build
on:
push:

View File

@ -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);

View File

@ -1,4 +1,4 @@
name: citra-format
name: mandarine-format
on:
push:

View File

@ -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:

View File

@ -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()

View File

@ -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/")

View File

@ -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})

View File

@ -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).**

View File

@ -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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
dist/apple/mandarine.icns vendored Normal file

Binary file not shown.

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

2
dist/citra.svg vendored

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

BIN
dist/doc-icon.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -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}")

View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

3000
dist/languages/de.ts vendored

File diff suppressed because it is too large Load Diff

2992
dist/languages/el.ts vendored

File diff suppressed because it is too large Load Diff

3010
dist/languages/es_ES.ts vendored

File diff suppressed because it is too large Load Diff

2980
dist/languages/fi.ts vendored

File diff suppressed because it is too large Load Diff

3006
dist/languages/fr.ts vendored

File diff suppressed because it is too large Load Diff

2980
dist/languages/hu_HU.ts vendored

File diff suppressed because it is too large Load Diff

2982
dist/languages/id.ts vendored

File diff suppressed because it is too large Load Diff

3010
dist/languages/it.ts vendored

File diff suppressed because it is too large Load Diff

2990
dist/languages/ja_JP.ts vendored

File diff suppressed because it is too large Load Diff

3002
dist/languages/ko_KR.ts vendored

File diff suppressed because it is too large Load Diff

2984
dist/languages/lt_LT.ts vendored

File diff suppressed because it is too large Load Diff

2986
dist/languages/nb.ts vendored

File diff suppressed because it is too large Load Diff

3008
dist/languages/nl.ts vendored

File diff suppressed because it is too large Load Diff

2968
dist/languages/pl_PL.ts vendored

File diff suppressed because it is too large Load Diff

3000
dist/languages/pt_BR.ts vendored

File diff suppressed because it is too large Load Diff

2988
dist/languages/ro_RO.ts vendored

File diff suppressed because it is too large Load Diff

2986
dist/languages/ru_RU.ts vendored

File diff suppressed because it is too large Load Diff

2986
dist/languages/tr_TR.ts vendored

File diff suppressed because it is too large Load Diff

2986
dist/languages/vi_VN.ts vendored

File diff suppressed because it is too large Load Diff

3014
dist/languages/zh_CN.ts vendored

File diff suppressed because it is too large Load Diff

2994
dist/languages/zh_TW.ts vendored

File diff suppressed because it is too large Load Diff

6
dist/license.md vendored
View File

@ -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 -->

View File

@ -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

View File

@ -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
View 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

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

9
dist/mandarine.svg vendored Normal file
View 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

View File

@ -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>

View File

@ -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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -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()})

View File

@ -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)

View File

@ -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.

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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)
}

View File

@ -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

View File

@ -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>(

View File

@ -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()

View File

@ -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,

View File

@ -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)
}

View File

@ -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>() {

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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) {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More