explaingit

ufoex/azahar-viewer

Analysis updated 2026-07-26

1KotlinAudience · generalComplexity · 2/5Setup · easy

TLDR

An Android app that turns a second phone into a touch screen for a Nintendo 3DS emulator. It streams the bottom screen over Wi-Fi and sends touch input back to the emulator.

Mindmap

mindmap
  root((repo))
    What it does
      Streams video via Wi-Fi
      Sends touch input back
      Auto-finds emulator
      Shows reconnect prompt
    Use cases
      Play DS games on phone
      Use two phones as screens
      Interact with touch menus
    Tech stack
      Kotlin
      Android
      Hardware video decoder
    Audience
      Mobile gamers
      Retro gaming fans
    Limitations
      One client at a time
      No encryption or auth
      Trusted networks only

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Use a spare phone as a touch screen when playing 3DS games on an emulator.

USE CASE 2

Interact with in-game menus, keyboards, and drawing games on a separate touch device.

USE CASE 3

Play Nintendo 3DS games with authentic dual-screen feel using two phones.

What is it built with?

KotlinAndroid

How does it compare?

ufoex/azahar-viewerdenizaydogan1902/anvilaimfori/bit-aes
Stars111
LanguageKotlinKotlinKotlin
Last pushed2020-05-11
MaintenanceDormant
Setup difficultyeasyhardmoderate
Complexity2/54/52/5
Audiencegeneraldeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires a modified 3DS emulator that supports streaming the bottom screen and two Android phones on the same Wi-Fi network.

In plain English

Azahar Viewer is an Android app that turns a second phone into a working touch screen for a Nintendo 3DS emulator. The 3DS is a handheld game console with two screens: a top display and a smaller bottom touch screen. When you run a 3DS game on an emulator on one phone, this app lets you use a separate phone as that bottom screen. It receives a live video feed of the bottom screen over your local Wi-Fi and sends your touch input back to the emulator. The result is that the second phone acts like a real second touchscreen, not just a passive display. The app automatically finds emulators on your network that are streaming, so you never have to type in IP addresses. It decodes the video using the phone's hardware decoder, which keeps battery and processor usage low, and displays it at the correct 4:3 aspect ratio. Touch events you make on the second phone are sent back to the emulator over the same connection, letting you interact with menus, keyboards, and drawing games. The app also shows a reconnect prompt if the stream drops, rather than failing quietly. It supports English and Spanish, matching your device's system language. To use it, you install this app on the phone that will serve as the second screen. On the phone running the modified emulator, you start a game, open the in-game menu, and choose the option to stream the bottom screen. Then you open this app, pick the emulator from the automatically generated list, and start touching the screen. The project is written entirely in Kotlin and works on Android 5.0 and above. The creator describes it as a personal proof of concept. It supports one client at a time, has no encryption or authentication on the stream, and is intended for home use on a trusted network. Anyone on the same local network could in principle connect to the stream, so it is not built for environments beyond a private Wi-Fi setup.

Copy-paste prompts

Prompt 1
Help me set up Azahar Viewer to use my old Android phone as a second screen for my 3DS emulator. Walk me through the steps.
Prompt 2
My Azahar Viewer stream keeps dropping or not finding the emulator. What should I check on my Wi-Fi network?
Prompt 3
I want to modify Azahar Viewer to support a custom video stream from my PC instead of an Android emulator. Which parts of the Kotlin code handle stream discovery and decoding?

Frequently asked questions

What is azahar-viewer?

An Android app that turns a second phone into a touch screen for a Nintendo 3DS emulator. It streams the bottom screen over Wi-Fi and sends touch input back to the emulator.

What language is azahar-viewer written in?

Mainly Kotlin. The stack also includes Kotlin, Android.

How hard is azahar-viewer to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is azahar-viewer for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.