How azahar-emu/azahar works
Azahar is a multi-platform Nintendo 3DS emulator. A user selects a game in a desktop, Android, command-line, or libretro frontend; the emulator runs it and presents graphics and audio. The product also includes configuration, networking, cheats, applets, custom textures, and developer debugging tools. The tree and README support these major capabilities, but the sampled excerpts do not show most cross-module calls, so the graph keeps those connections conservative.
Main entry points: core Emulation core · video_core Video rendering · citra_qt Desktop UI · citra_emu Android app
Components 20
User frontends
- Desktop UI
src/citra_qt - Android app
src/android/app/src/main/java/org/citra/citra_emu - CLI frontend
src/citra_cli - Libretro frontend
src/citra_libretro
Emulation
- Emulation core
src/core - Applet services
src/core/hle/service/apt/applet_manager.cpp
Graphics and audio
- Video rendering
src/video_core - OpenGL renderer
src/video_core/renderer_opengl/gl_shader_manager.cpp - Vulkan renderer
src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp - Audio processing
src/audio_core
Emulator features
- Settings
src/android/app/src/main/java/org/citra/citra_emu/features/settings - Multiplayer
src/android/app/src/main/java/org/citra/citra_emu/utils/NetPlayManager.kt - Cheat engine
src/android/app/src/main/jni/cheats/cheat_engine.cpp - Custom textures
src/video_core/custom_textures/custom_tex_manager.cpp
Developer tools
- Debug tools
src/citra_qt/debugger
Other components
- Player or developer
- 3DS game
- Game and user files
- Graphics display
- Audio output
Connections 27
- Player or developer → Desktop UI: selects and configures
- Player or developer → Android app: selects and configures
- Player or developer → CLI frontend: starts
- Player or developer → Libretro frontend: starts
- Desktop UI → Emulation core: runs emulation
- Android app → Emulation core: runs emulation
- CLI frontend → Emulation core: runs emulation
- Libretro frontend → Emulation core: runs emulation
- Player or developer → 3DS game: chooses
- 3DS game → Emulation core: game data
- Emulation core → Game and user files: reads and writes
- Emulation core → Video rendering: renders graphics
- Video rendering → OpenGL renderer: uses renderer
- Video rendering → Vulkan renderer: uses renderer
- OpenGL renderer → Graphics display: presents frames
- Vulkan renderer → Graphics display: presents frames
- Emulation core → Audio processing: produces audio
- Audio processing → Audio output: sends audio
- Emulation core → Applet services: manages applets
- Player or developer → Settings: changes options
- Settings → Emulation core: configures
- Player or developer → Multiplayer: joins sessions
- Player or developer → Cheat engine: edits cheats
- Cheat engine → Emulation core: updates cheats
- Emulation core → Custom textures: loads texture replacements
- Player or developer → Debug tools: inspects emulation
- Debug tools → Emulation core: debugs