Skip to content

The Edge of the Cyber World See the latest

Apps

Photonic Sun & Prismatic Moon on Azahar: 14 Steps [2026]

Pokémon Photonic Sun and Pokémon Prismatic Moon are not casual weekend projects. They are full rewrites of Pokémon Ultra Sun and Ultra Moon that swap out encounter tables, trainer rosters, and movesets while keeping the original 3D engine intact, and installing them wrong is the single most common reason people give up before reaching Melemele Island. Unlike a Game Boy Advance ROM hack, which ships as a self-contained patched file, these 3DS-generation hacks load through a system called LayeredFS, which overlays new files on top of a legally dumped base game without ever touching the original data. Get one folder in the wrong place and the game boots into vanilla Ultra Moon like nothing happened.

This tutorial walks through the entire process on Azahar 2126.1.2, the actively maintained Citra successor, published September 20, 2026 according to its official GitHub release page. You will dump and verify a base game, understand exactly how LayeredFS resolves file conflicts, install Photonic Sun or Prismatic Moon with the correct title ID folder structure, configure graphics settings that actually help on real hardware, and fix the errors that trip up almost everyone on their first attempt. Budget about 75 minutes for your first hack and 15 minutes for every one after that, once the workflow clicks.

What Photonic Sun, Prismatic Moon, and Penumbra Moon Actually Are

Photonic Sun and Prismatic Moon are enhanced difficulty hacks built on top of Pokémon Ultra Sun and Pokémon Ultra Moon respectively, in the same tradition as Drayano’s earlier Gen 1-6 rebalance hacks (Blaze Black, Volt White, Sacred Gold). Rather than starting from scratch, they expand the available Pokémon pool across the entire regional dex, retool trainer teams with modern movesets and held items, and adjust level curves so the postgame doesn’t feel like an afterthought. Penumbra Moon sits in the same family of 3DS-generation LayeredFS hacks, though its current base-game requirement and active distribution point were not independently verifiable at the time of writing, so always confirm the required base title on the hack’s own release page before downloading anything.

The important distinction for setup purposes: Photonic Sun requires a genuine Pokémon Ultra Sun base game, and Prismatic Moon requires Pokémon Ultra Moon. Mixing them up is one of the most common reasons a mod silently fails to load, since LayeredFS matches files by the exact title ID of the game you launch, not by the mod’s file name. Community installation guides current as of September 2026 also recommend applying the game’s 1.2 update before installing either hack, since some LayeredFS file overlays assume the updated file structure is present.

It helps to understand why this generation of hack even needs a system like LayeredFS in the first place. On the Game Boy Advance, a ROM hack ships as one patch file applied directly to a copy of the game, because the entire cartridge is a single flat binary that’s small enough to redistribute a diff of. A 3DS game is an entirely different animal: it’s a packaged filesystem containing thousands of individual compressed assets, scripts, and models spread across a ROM filesystem (romfs) and executable filesystem (exefs). Patching a binary diff against that structure directly is fragile and breaks the moment Nintendo ships even a minor update. LayeredFS sidesteps the problem by never touching the original files at all. It simply tells the emulator “when you go looking for this specific file inside the game, check my folder first,” which is why hack authors can distribute an update as just the handful of files that changed, rather than repackaging the entire game every time.

This also explains why these hacks feel closer in spirit to a total conversion mod on PC than to a classic ROM hack. Photonic Sun and Prismatic Moon don’t just tweak a few encounter tables in a hex editor. Their authors work with the game’s actual scripting language and asset pipeline, the same tools Nintendo’s own developers used, to rebuild trainer battles, adjust the regional Pokédex, and rewrite NPC dialogue where necessary. That’s also why file counts for a single hack’s overlay can run into the hundreds, even though the base game itself is untouched.

Prerequisites and System Requirements

Before touching Azahar, confirm you have every one of the following. Skipping a prerequisite is the fastest way to burn an evening chasing a black screen that has nothing to do with the ROM hack itself.

  • Azahar 2126.1.2 or newer, downloaded only from the official GitHub releases page or the official Google Play listing, never from a third-party “bundle” site.
  • A Nintendo 3DS or New 3DS console that you personally own, used to dump your own legally purchased copy of Pokémon Ultra Sun or Ultra Moon.
  • The game’s 1.2 update applied on real hardware before dumping, or downloaded and installed inside Azahar afterward.
  • 3DS system files (OTP, movable.sed, and applicable seed data) dumped from your own console using a current, documented dumping method. Azahar does not ship these for you and does not require a traditional single BIOS file the way older console emulators do.
  • A 64-bit Windows 10/11 PC with 8 GB of RAM minimum and a DirectX 11/12- or Vulkan-capable GPU with updated drivers, or a 64-bit ARM Android device running Android 5 or newer with arm64-v8a support.
  • On Android specifically, a midrange-or-better chipset. Snapdragon 7-series and Dimensity 7000-series devices handle lighter 3D scenes at roughly 1x-2x internal resolution. Low-end Unisoc or RK3566-class chips are generally unsuitable for this workload.
  • At least 4 GB of free storage for the emulator, the base game dump, shader cache, and the mod files themselves.
  • The Photonic Sun or Prismatic Moon archive downloaded from the hack’s official distribution page, not a reuploaded mirror.
  • A file archiver capable of handling 7z or zip archives (7-Zip on Windows, the built-in extractor on most Android file managers).

One clarification worth repeating: Azahar itself is general-purpose emulation software, distinct under copyright law from the game files, system data, and encryption keys it needs to run anything. Downloading someone else’s Pokémon dump or another person’s system files remains legally risky even though the emulator is openly distributed. Everything in this guide assumes you are dumping your own cartridge or eShop purchase from your own console.

If you don’t already own a 3DS capable of dumping your own game and system files, this entire workflow stalls at the first step, so it’s worth checking your options before buying anything new. A New 3DS, New 3DS XL, or New 2DS XL is generally the easier target for the homebrew dumping tools this guide assumes, since the original 3DS and 2DS lack the extra processing power some newer homebrew launch methods rely on. Secondhand consoles turn up regularly through game resale marketplaces and local listings. Just confirm the system firmware version before buying if you plan to use a specific dumping method, since some approaches are version-dependent. None of this requires keeping the console modified long-term. Once you’ve exported your system files and game dump, the console can go back to being a normal, unmodified 3DS if you prefer, since everything after that point happens inside Azahar on your PC or phone.

Requirement Windows minimum Android minimum
OS version 64-bit Windows 10 or 11 Android 5.0+, arm64-v8a required
RAM 8 GB 4 GB (6 GB+ recommended for LayeredFS mods)
GPU / chipset DirectX 11/12 or Vulkan-capable, current drivers Snapdragon 7-series or Dimensity 7000-series or better
Storage free 4 GB+ 4 GB+
Emulator source github.com/azahar-emu/azahar Official Google Play listing or GitHub APK

How LayeredFS Actually Loads a ROM Hack

LayeredFS is a file-overlay system, not a patcher. When Azahar boots a game, it normally reads every file straight out of your dumped base game. With a LayeredFS mod installed, Azahar first checks a dedicated mod folder for a file at the same internal path. If it finds one there, it loads that file instead of the original. Anything the mod doesn’t replace still comes from your untouched base dump. Nothing about your original game file is ever rewritten, which is why the same base dump can run a dozen different LayeredFS hacks just by swapping which mod folder is active.

Azahar supports LayeredFS directly in its own filesystem implementation, so you do not need a separate loader, a Luma3DS-style CFW layer, or any third-party plugin the way some older Citra workflows implied. The catch is that the folder structure has to be exact. Every file the mod’s author intended to overlay lives inside a directory named after the game’s title ID, and that title ID directory has to sit inside Azahar’s load/mods folder for the emulator to find it at boot.

It’s worth contrasting this briefly with how the same job works on real hardware. On a modded physical 3DS running Luma3DS custom firmware, LayeredFS mods live in an SD card path under luma/titles/<title ID>, and the custom firmware itself intercepts file reads at the system level before they ever reach the game. Azahar recreates that same overlay behavior entirely in software, without needing a real console or a flashed SD card at all, which is exactly why hack distributions still package their files inside a luma/titles/ folder structure. That packaging convention predates Azahar and Citra both. It’s a holdover from the physical-hardware modding scene, and emulator authors adopted the same folder convention to stay compatible with the huge existing library of hacks built against it, rather than forcing every hack author to repackage their work in a new format.

Knowing that lineage matters practically: if you ever come across setup instructions written for a real 3DS with Luma3DS, they translate almost directly to Azahar. Wherever those guides say “SD card root,” read that as “Azahar’s load folder,” and wherever they say “luma/titles,” that’s the folder whose contents you’re isolating and moving into load/mods.

Downloaded hack archive (before extraction):
PhotonicSun_v1.x.7z
└── luma/
    └── titles/
        └── 000400000019C000/
            ├── romfs/
            ├── exefs/
            └── (additional overlay files)

That 000400000019C000-style string is the title ID, and it must match the exact region and variant of the game you are going to launch. Ultra Sun, Ultra Moon, and their regional releases each carry a different title ID, which is why a European Ultra Moon dump paired with a North American mod build will often show up as installed but silently do nothing in-game.

Step 1: Install Azahar 2126.1.2

Go to the official Azahar GitHub releases page and download the build matching your platform. On Windows, grab the MSVC or MinGW build depending on your preference (MSVC is the safer default for most users) and extract it to a folder outside of Program Files to avoid permission headaches later. On Android, install directly from the Google Play listing or sideload the official APK from GitHub. Launch Azahar once before doing anything else. This first launch creates the user data folders you will be working in for the rest of this guide, including the all-important load directory.

Step 2: Locate Your Azahar User Directory

Inside Azahar, open File then Open Azahar Folder (Windows) or check the app’s internal storage path (Android, typically under Android/data/org.azahar.azahar_emu/files or the equivalent scoped storage location on newer Android builds). This is where your load, nand, sdmc, and sysdata folders live. Bookmark this location. You will return to it for every mod you ever install, not just this one.

Azahar user folder (typical layout):
Azahar/
├── config/
├── load/
│   └── mods/
├── nand/
├── sdmc/
├── sysdata/
└── log/
    └── log.txt

Step 3: Dump System Files From Your Own 3DS Console

Azahar needs your console’s OTP and movable.sed data to properly decrypt titles. Use a current, documented dumping tool on your own hacked or homebrew-enabled 3DS to extract these files, then import them through Azahar’s Emulation menu under system file settings. Do not download someone else’s OTP or movable.sed file from a forum. These are tied to your specific console’s unique cryptographic identity, and using someone else’s will cause decryption failures or, worse, save-corrupting mismatches down the line.

Step 4: Dump Your Own Ultra Sun or Ultra Moon Cartridge

Using your 3DS’s homebrew dumping tool of choice, export your physical or digital copy of Ultra Sun (for Photonic Sun) or Ultra Moon (for Prismatic Moon) as a decrypted CIA or 3DS file. Transfer it to your PC or Android device over USB or your local network. Keep the original filename intact where possible, since some community guides reference it directly when troubleshooting title ID mismatches.

Step 5: Apply the 1.2 Update Before Installing the Hack

Both hacks assume you are running the game’s 1.2 patch. If your dumped cartridge copy predates the update, install it through Azahar’s built-in system settings the same way you would on real hardware, using an update file dumped from your own console or downloaded through Azahar’s home menu equivalent. Skipping this step is a common reason certain in-game scripts in a LayeredFS hack fail to trigger correctly, since the mod’s overlay files assume the 1.2 file structure underneath them.

Step 6: Load the Base Game Once to Confirm It Runs Clean

Boot the unmodified base game inside Azahar before installing anything. Get past the title screen and into a save file. This confirms your system files, base dump, and update are all correctly paired before you introduce a mod into the mix. If something is wrong at this stage, it is far easier to diagnose without a LayeredFS overlay complicating the picture.

Step 7: Identify the Exact Title ID of Your Game

Right-click (Windows) or long-press (Android) your game entry in Azahar’s game list and open Properties. The title ID is displayed in the game info panel, typically as a 16-character hexadecimal string. Write this down exactly as shown. It has to match the folder name you use in the next step character for character, including case.

# Example: locating and confirming a title ID on Windows
# (Azahar > right-click game > Properties > General tab)

Game:      Pokemon Ultra Moon (USA)
Title ID:  00040000001B5100
Region:    NA

# This exact string must match the folder name under load/mods/

Step 8: Extract the Hack Archive and Locate the Title ID Folder

Extract the Photonic Sun or Prismatic Moon archive you downloaded. Inside, you will find a luma/titles/ path followed by a title ID folder. This is the piece you actually need, not the entire archive structure around it. Copying the whole luma folder verbatim into Azahar’s load/mods directory is one of the most common installation mistakes, since Azahar expects the title ID folder directly inside load/mods, not nested three levels deeper.

Step 9: Place the Mod in Azahar’s load/mods Folder

Copy the title ID folder (matching what you recorded in Step 7) directly into Azahar/load/mods/. If the folder name from the archive doesn’t precisely match your dumped game’s title ID, rename it so it does. A single wrong character here is enough for Azahar to load the game as if no mod exists at all, with no error message to warn you.

Correct final structure:
Azahar/
└── load/
    └── mods/
        └── 00040000001B5100/          <- exact title ID, case-sensitive
            ├── romfs/
            ├── exefs/
            └── (mod overlay files)

Incorrect (common mistake):
Azahar/
└── load/
    └── mods/
        └── luma/
            └── titles/
                └── 00040000001B5100/   <- nested too deep, won't load

Step 10: Restart Azahar and Launch the Modded Game

Fully close Azahar, not just the game window, then relaunch it. LayeredFS mods are indexed at emulator startup, so if Azahar was already open when you copied the folder in, it will not pick up the change until you restart. Launch your Ultra Sun or Ultra Moon entry from the game list as normal.

Step 11: Confirm the Mod Actually Loaded

The clearest early confirmation is usually a changed title screen, an altered starter selection scene, or a modified opening cutscene, depending on which hack you installed. If you want a technical confirmation instead of a visual one, open Azahar’s log file after boot and search for LayeredFS-related load entries referencing your title ID folder.

# Windows PowerShell: check the Azahar log for LayeredFS activity
Select-String -Path "$env:APPDATAazahar-emuloglog.txt" -Pattern "LayeredFS","load/mods"

# macOS/Linux equivalent
grep -iE "layeredfs|load/mods" ~/.local/share/azahar-emu/log/log.txt

Step 12: Configure Graphics Settings for Stable Performance

Open Emulation then Configure then the Graphics tab. Set the internal resolution factor conservatively at first, 1x or 2x, and confirm the hack runs smoothly before pushing it higher. LayeredFS overlays occasionally add extra asset variety that increases shader compilation time on first boot, which can look like a freeze but is usually just Azahar building its shader cache. Give the first boot of a new area extra time before assuming something is broken.

# azahar-qt-config.ini - relevant [Renderer] section for a first stable pass
[Renderer]
resolution_factor = 2
use_vsync_new = true
async_shader_compilation = true
texture_filter = none
graphics_api = 1  ; 0 = OpenGL, 1 = Vulkan (if supported on your GPU)

Step 13: Create a Fresh Save and Back It Up Immediately

Start a new save file inside the modded game rather than reusing an old vanilla save, since LayeredFS overlays frequently touch encounter tables and scripted events tied to save flags from the very first minutes of the game. Once you have a save you’re happy with, back up Azahar’s sdmc save data folder before doing any further experimentation, especially before trying a second hack on the same base game.

# Simple backup script (Windows PowerShell)
$src = "$env:APPDATAazahar-emusdmcNintendo 3DS"
$dst = "$env:USERPROFILEDocumentsAzaharBackups$(Get-Date -Format yyyyMMdd)"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
Copy-Item -Path $src -Destination $dst -Recurse
Write-Host "Backup complete: $dst"

Step 14: Manage Multiple Hacks Without Conflicts

If you plan to try both Photonic Sun and Prismatic Moon, remember they map to different base games and different title IDs, so they naturally coexist without conflict as separate folders under load/mods. If you ever want to switch back to vanilla Ultra Sun or Ultra Moon temporarily, move the corresponding title ID folder out of load/mods to a separate holding folder rather than deleting it, then move it back in when you want the hack active again.

Why Azahar Instead of Panda3DS or Lime3DS for This

Azahar isn’t the only Citra successor still under active development. Lime3DS was an earlier continuation of the codebase, and Panda3DS is a separate, independently written 3DS emulator built from scratch rather than forked from Citra. For general 3DS gaming, all three have their fans and their own tradeoffs in accuracy, performance, and platform support, and a full breakdown of those differences is worth a dedicated comparison on its own.

For LayeredFS-specific modding, though, Azahar has a practical edge right now: it inherited Citra’s mature, battle-tested LayeredFS implementation almost unchanged, and it’s the emulator the largest share of current 3DS Pokémon romhack installation guides are written against. That matters more than it might seem, because when something goes wrong with a mod install, you want to be troubleshooting against documentation and community threads that match your exact emulator, not translating instructions written for a different project with a subtly different folder convention or file-matching behavior. Panda3DS in particular, being a from-scratch rewrite, has historically lagged behind on full LayeredFS parity, since matching Citra’s exact file-resolution behavior wasn’t the project’s starting priority. If you hit a wall specifically with LayeredFS mod loading on another emulator, switching to Azahar for this one use case, while keeping your other emulator for general 3DS gaming, is a completely reasonable way to split the difference.

Photonic Sun vs Prismatic Moon vs Penumbra Moon

The table below summarizes what’s currently confirmed about each hack’s base-game requirement. Treat anything not explicitly confirmed as something to verify on the hack’s own release page before downloading, since LayeredFS mods are frequently updated and requirements can shift between revisions.

Hack Base game required Genre style Update needed
Photonic Sun Pokémon Ultra Sun Expanded dex, rebalanced trainers 1.2 recommended
Prismatic Moon Pokémon Ultra Moon Expanded dex, rebalanced trainers 1.2 recommended
Penumbra Moon Verify on official release page Same LayeredFS hack family Verify on official release page

Common Pitfalls When Installing LayeredFS Pokémon Hacks

Most failed installs trace back to one of these five mistakes, roughly in order of how often they show up in community troubleshooting threads.

  • Copying the archive’s full luma/titles path instead of just the title ID folder. Azahar looks directly inside load/mods for a title ID folder, not three directories deep.
  • Pairing the wrong base game with the wrong hack. Photonic Sun needs Ultra Sun. Prismatic Moon needs Ultra Moon. Swapping them results in a mod that appears installed but changes nothing.
  • Using a title ID from the wrong region. A North American dump paired with a European-built mod folder (or vice versa) will not match, even though the game names look identical in the library.
  • Leaving Azahar running while you copy files. LayeredFS mods are indexed at startup. Changes made mid-session are silently ignored until you restart the emulator.
  • Skipping the 1.2 update. Scripted events and encounter triggers baked into the hack can fail quietly if the underlying game version doesn’t match what the mod’s author built against.

Troubleshooting: 8 Common Problems and Fixes

Symptom Likely cause Fix
Game boots but looks completely vanilla Title ID folder mismatch or nested too deep Re-check folder name matches Properties > Title ID exactly, and confirm it sits directly under load/mods
Black screen on launch Missing or mismatched system files (OTP/movable.sed) Re-dump system files from your own console and re-import them in Azahar’s system settings
Game won’t appear in the library at all Incomplete or corrupted dump Re-dump the cartridge or digital copy, verifying the file completed transfer without truncation
Long freeze on entering a new area Shader cache compiling for the first time Enable async shader compilation and wait it out. Subsequent loads of the same area will be fast
Save file corrupts or resets Reused a vanilla save with an incompatible hack Start a fresh save specifically for the modded game and back it up regularly
Audio crackling or stuttering CPU thread contention on lower-end hardware Lower the internal resolution factor and disable unnecessary background apps
Mod folder present but no change in-game Azahar was left running while the mod was copied in Fully close and relaunch Azahar so LayeredFS re-indexes the load/mods folder
Game crashes on a specific cutscene Missing or outdated 1.2 update underneath the mod overlay Confirm the base game update is fully applied before reinstalling the mod folder

Advanced Tips for Power Users

Once the basic install is stable, a few refinements make the experience noticeably smoother. First, keep a dedicated folder outside of Azahar’s directory structure where you store the original, unmodified title ID folders you extracted from each hack archive. If Azahar ever updates and changes its expected mod path structure, you can reinstall instantly instead of re-downloading everything.

Second, if a hack offers both Standard and Rebalanced difficulty variants, install them as separate title ID folder swaps rather than trying to merge them, since overlapping overlay files from two variants can produce unpredictable behavior. Third, pair your modded save with a save-editing tool if you need to fix a corrupted flag or adjust a Pokémon’s data without restarting, but always back up the save file before editing it. Fourth, if you’re running on Android and performance dips in later-game areas with denser 3D models, dropping the resolution factor back to 1x during those specific sections and raising it again for overworld exploration is a reasonable compromise rather than running the whole game at a lower setting throughout.

Finally, treat your load/mods folder like source control. Before installing a hack update, rename the existing title ID folder rather than deleting it, confirm the new version works, and only remove the old one once you’ve verified your save still loads correctly against the updated overlay files.

A less obvious tip that saves real time down the line: keep a plain text changelog next to your backups noting which Azahar version, which hack version, and which base game update you had installed at the moment you took each save backup. LayeredFS hacks get revised periodically as their authors fix bugs or rebalance encounters, and Azahar itself ships new releases frequently. Without a record of what combination actually worked, a save that plays fine today can become difficult to diagnose months later if you update several pieces at once and something breaks. A single line per backup, something as simple as “2026-09-23, Azahar 2126.1.2, Prismatic Moon v1.4, Ultra Moon 1.2,” is enough to rule out most compatibility guesswork later.

If you’re setting this up on a handheld running Android rather than a desktop PC, one more consideration is worth flagging: scoped storage restrictions on newer Android versions can make Azahar’s file picker behave inconsistently when you try to copy folders directly on-device. Many players find it more reliable to organize the load/mods folder structure on a PC first, using a file manager or archive tool there, then transfer the finished, correctly nested folder over to the Android device as a single unit rather than assembling it piece by piece inside Android’s own file picker.

Legal Notes on Emulation and ROM Hacking

Azahar, like its Citra predecessor before its 2024 shutdown, is emulator software, which courts and organizations like the Electronic Frontier Foundation have generally distinguished from the copyrighted game data it runs. The legally gray area sits with the content, not the software: dumping your own cartridge or eShop purchase from a console you own is materially different from downloading someone else’s copy of the game, system files, or encryption keys. LayeredFS hacks like Photonic Sun and Prismatic Moon are distributed as overlay files that modify your own legally obtained dump locally, which keeps them in a similar category to other fan-made game modifications, but always source both the base game and the mod from official or well-established community channels rather than bundled “everything included” downloads.

It’s also worth understanding why Citra shut down in the first place, since it shapes how the current Azahar project operates. Citra’s development team wound the project down in 2024 following legal pressure tied to Nintendo’s broader enforcement campaign against emulation projects that shipped alongside or facilitated access to unauthorized game files, rather than a ruling against emulation as a general concept. Azahar and other successor projects have continued distributing the emulator itself as open-source software while being explicit that users are responsible for sourcing their own game data legally, which is the same posture this guide takes throughout. None of this constitutes legal advice, and emulation law varies by jurisdiction, so if you have specific concerns about your local laws, treat that as a separate research question from the technical steps covered here.

Sample Output: What a Successful Install Looks Like

After a correct install, launching your Ultra Moon entry should present a noticeably different title screen and opening sequence than vanilla Prismatic Moon, followed by an altered starter Pokémon selection reflecting the hack’s expanded roster. Your Azahar log should show LayeredFS successfully resolving overlay files against your title ID during the boot sequence, and frame pacing should stabilize within the first minute once initial shader compilation clears.

# Example log.txt excerpt after a successful LayeredFS load
[Service.FS] LayeredFS patch directory found for title 00040000001B5100
[Service.FS] Loaded 214 override files from load/mods/00040000001B5100/romfs
[Render.OpenGL] Shader cache: 0 cached, building new entries
[Core] Booting title 00040000001B5100 (Pokemon Ultra Moon - Prismatic Moon overlay)

Building a Complete Working Setup From Scratch

To pull the whole process together: install Azahar 2126.1.2, launch it once to generate the user folders, dump your system files and your own Ultra Sun or Ultra Moon cartridge from your own console, apply the 1.2 update, confirm the vanilla game boots and saves correctly, extract your chosen hack’s archive and isolate its title ID folder, drop that folder directly into load/mods under the exact matching title ID, restart Azahar, and launch the game. Every step in between exists to catch a specific, common failure point before it costs you a corrupted save or an hour of confused troubleshooting. Followed in order, this is a reliable, repeatable workflow you can reuse for any future LayeredFS-based Pokémon hack, not just the three covered here.

Frequently Asked Questions

Do I need Citra to play these hacks, or does Azahar work on its own?
Azahar works entirely on its own. Citra was shut down in 2024 following legal pressure from Nintendo, and Azahar is the actively maintained continuation of that codebase, with LayeredFS mod support built in directly.

Can I use my existing Ultra Moon save with Prismatic Moon installed?
It’s not recommended. LayeredFS hacks frequently alter encounter tables and scripted events tied to early-game save flags, so starting a fresh save avoids corruption or event triggers firing incorrectly.

Why does my mod folder show up but the game plays exactly like vanilla?
This almost always means the title ID folder name doesn’t exactly match your dumped game’s title ID, or the folder is nested too deep inside load/mods instead of sitting directly inside it.

Is Photonic Sun compatible with Pokémon Ultra Moon instead of Ultra Sun?
No. Photonic Sun is built specifically against the Ultra Sun base game’s file structure and title ID. Use Prismatic Moon for an Ultra Moon base instead.

Do I need a hacked physical 3DS to use these hacks, or does Azahar bypass that requirement?
You still need access to a 3DS console you own to dump your system files and your legally purchased game, but that console does not need to remain hacked afterward purely to play the mod inside Azahar on PC or Android.

Why is my game freezing the first time I enter a new town or route?
This is typically Azahar compiling new shaders for assets it hasn’t rendered yet, not an actual crash. Enable async shader compilation in the graphics settings and allow the first pass through new areas to take longer than normal.

Can I run both Photonic Sun and Prismatic Moon at the same time?
Yes, since they target different base games with different title IDs, their mod folders coexist under load/mods without conflicting, as long as each is paired with its correct base game.

What should I do if Azahar updates and my mods stop working?
Check the Azahar release notes for changes to the load/mods folder structure, and keep your original extracted title ID folders backed up separately so you can quickly reapply them after confirming the new structure.

Related Coverage

Source: Tech Insider