## File: README.md **Azahar** is an open-source 3DS emulator project based on Citra. It was created from the merging of PabloMK7's Citra fork and the Lime3DS project, both of which emerged shortly after Citra was taken down. The goal of this project is to be the de-facto platform for future development. # Installation ### Windows Azahar is available as both an installer and a zip archive. Download the latest release in your preferred format from the [Releases](https://github.com/azahar-emu/azahar/releases) page. If you are unsure of whether you want to use MSVC or MSYS2, use MSYS2. --- ### MacOS To download a build that will work on all Macs, you can download the `macos-universal` build on the [Releases](https://github.com/azahar-emu/azahar/releases) page. Alternatively, if you wish to download a build specifically for your Mac, you can choose either: - `macos-arm64` for Apple Silicon Macs - `macos-x86_64` for Intel Macs --- ### Android There are two variants of Azahar available on Android, those being the Vanilla and Google Play builds. The Vanilla build is technically superior, as it uses an alternative method of file management which is faster, but isn't permitted on the Google Play store. For most users, we currently recommended downloading Azahar on Android via the Google Play Store for ease of accessibility: [](https://play.google.com/store/apps/details?id=io.github.lime3ds.android) Alternatively, you can install the app using Obtainium, allowing you to use the Vanilla variant: 1. Download and install Obtainium from [here](https://github.com/ImranR98/Obtainium/releases) (use the file named `app-release.apk`) 2. Open Obtainium and click 'Add App' 3. Type `https://github.com/azahar-emu/azahar` into the 'App Source URL' section 4. Click 'Add' 5. Click 'Install', and select the preferred variant If you wish, you can also simply install the latest APK from the [Releases](https://github.com/azahar-emu/azahar/releases) page. Keep in mind that you will not recieve automatic updates when installing via the APK. --- ### Linux The recommended format for using Azahar on Linux is the Flatpak available on Flathub: [](https://flathub.org/apps/org.azahar_emu.Azahar) Azahar is also available as an AppImage on the [Releases](https://github.com/azahar-emu/azahar/releases) page. There are two variants of the AppImage available, those being `azahar.AppImage` and `azahar-wayland.AppImage`. If you are unsure of which variant to use, we recommend using the default `azahar.AppImage`. This is because of upstream issues in the Wayland ecosystem which may cause problems when running the emulator (e.g. [#1162](https://github.com/azahar-emu/azahar/issues/1162)). Unless you explicitly require native Wayland support (e.g. you are running a system with no Xwayland), the non-Wayland variant is recommended. The Flatpak build of Azahar also has native Wayland support disabled by default. If you require native Wayland support, it can be enabled using [Flatseal](https://flathub.org/en/apps/com.github.tchx84.Flatseal). # Build instructions Please refer this repository's [wiki](https://github.com/azahar-emu/azahar/wiki/Building-From-Source) for build instructions # How can I contribute? ### Pull requests If you want to implement a change and have the technical capability to do so, we would be happy to accept your contributions. If you are contributing a new feature, it is highly suggested that you first make a Feature Request issue to discuss the addition before writing any code. This is to ensure that your time isn't wasted working on a feature which isn't deemed appropriate for the project. After creating a pull request, please don't repeatedly merge `master` into your branch. A maintainer will update the branch for you if/ when it is appropriate to do so. ### Language translations Additionally, we are accepting language translations on [Transifex](https://app.transifex.com/azahar/azahar). If you know a non-english language listed on our Transifex page, please feel free to contribute. > [!NOTE] > We are not currently accepting new languages for translation. Please do not request for new languages or language variants to be added. ### Compatibility reports Even if you don't wish to contribute code or translations, you can help the project by reporting game compatibility data to our compatibility list. To do so, simply read https://github.com/azahar-emu/compatibility-list/blob/master/CONTRIBUTING.md and follow the instructions. Contributing compatibility data helps more accurately reflect the current capabilities of the emulator, so it would be highly appreciated if you could go through the reporting process after completing a game. # Minimum requirements Below are the minimum requirements to run Azahar: ### Desktop ``` Operating System: Windows 10 (64-bit), MacOS 13.4 (Ventura), or modern 64-bit Linux CPU: x86-64/ARM64 CPU (Windows for ARM not supported). Single core performance higher than 1,800 on Passmark. SSE4.2 required on x86_64. GPU: OpenGL 4.3 or Vulkan 1.1 support Memory: 2GB of RAM. 4GB is recommended ``` ### Android ``` Operating System: Android 10.0+ (64-bit) CPU: Snapdragon 835 SoC or better GPU: OpenGL ES 3.2 or Vulkan 1.1 support Memory: 2GB of RAM. 4GB is recommended ``` # What's next? We share public roadmaps for upcoming releases in the form of GitHub milestones. You can find these at https://github.com/azahar-emu/azahar/milestones. # Join the conversation We have a community Discord server where you can chat about the project, keep up to date with the latest announcements, or coordinate emulator development. Join at https://discord.gg/4ZjMpAp3M6 --- ## File: dist/languages/README.md 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. --- ## File: externals/glad/Readme.md These files were generated by the [glad](https://github.com/Dav1dde/glad) OpenGL loader generator and have been checked in as-is. You can re-generate them using glad with the following command: ``` python -m glad --profile core --out-path glad/ --api "gl=4.3,gles2=3.2" --generator=c ``` 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/azahar-emu/azahar/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. --- ## File: externals/httplib/README.md From https://github.com/yhirose/cpp-httplib/commit/0a629d739127dcc5d828474a5aedae1f234687d3 MIT License === cpp-httplib A C++11 header-only HTTP library. It's extremely easy to setup. Just include httplib.h file in your code! Inspired by Sinatra and express. © 2017 Yuji Hirose --- ## File: externals/json/README.md JSON for Modern C++ =================== v3.9.0 This is a mirror providing the single required header file. The original repository can be found at: https://github.com/nlohmann/json/commit/d34771cafc87b358ba421faca28facc7f8080174 --- ## File: externals/microprofile/README.md # microprofile MicroProfile is a embeddable profiler in a single file, written in C++ It can display profile information in the application, or by generating captures via a minimal built in webserver. For more information see the project webpage at https://bitbucket.org/jonasmeyer/microprofile --- ## File: externals/open_source_archives/Readme.md 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 The follwing system archives are currently included: - JPN/EUR/USA System Font - NG Bad Word List --- ## File: tools/README.md # Tools This directory contains several scripts which are intended to both document and ease the convenience of certain development processes. The scripts in this directory assume that your current working directory is the Azahar root directory and the script is being called via `./tools/xxx.sh`. ## Pre-release checklist - [ ] Update compatibility list - [ ] Update translations if either of the following apply: - This is a major release (e.g. 2125.x --> 2126.0) - This is a minor release, but the release branch hasn't yet diverged from master ## Post-release checklist - [ ] Publish to Google Play Store - [ ] Publish files to the official Internet Archive account (incl. changelog as .md file) - [ ] Publish to Flathub - [ ] Force-push tagged commit to retroarch-live branch ### Note: For reasons unknown, some part of the translation update process can inexplicably produce files with different content depending on the environment in which it is running, even when using the same version of the tool and the same distro. For consistency, when updating the translations to be committed to the repository, always perform the update within the the Docker environment we use for Azahar's CI (`opensauce04/azahar-build-environment:latest`).