# Emerald 3DS is a native port that rebuilds Hoenn from your own cartridge

> Emerald 3DS is a C port of Pokemon Emerald for the Nintendo 3DS that runs as native homebrew, moves the menu to the touch screen and adds an optional voxel overworld with stereoscopic 3D. It suits a player with a legitimate dump and a 3DS, and it depends on a browser builder plus a custom port licence.

**ZallaxDev/emerald-3ds** — Native Pokémon Emerald port for Nintendo 3DS, featuring dual-screen gameplay, stereoscopic 3D, and a fully 3D world.

- Repository: https://github.com/ZallaxDev/emerald-3ds
- Stars: 592 · Forks: 43
- Language: C
- License: NOASSERTION
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/zallaxdev-emerald-3ds

## The port is native homebrew, not an emulator layer

The first thing to establish is what runs where. The documentation describes Emerald 3DS as native Nintendo 3DS homebrew, and the features table says it runs directly on the console's ARM11 using libctru, Citro2D and Citro3D, without an emulator. That is a meaningful engineering statement rather than a marketing one. A native port means the game code has been rebuilt against the 3DS toolchain, so it runs at the console's own frame rate, uses the real hardware, and does not depend on the accuracy of an emulator's timing, audio and input emulation. It also means the port is a work of translation, not a wrapper. The repository layout backs this up: a `3ds_port/` directory holds the port itself, a `builder/` directory holds the build tooling, and there are `patches/`, `tools/` and `docs/` directories alongside `upstream.lock` and `NOTICE.md`. A file called `upstream.lock` in a port project is a strong hint that the build pins a specific upstream revision of the original game, which is how a long-running port keeps its base stable while adding features.

## The bottom screen becomes a dedicated touch interface

The central design choice is that the two screens stop being redundant. The game runs on the top screen, and a dedicated touch interface on the bottom screen replaces the START menu. That is the whole framing of the project in one line: Rediscover Hoenn, two screens, a new perspective. For a game whose original interface was a small status box and a text prompt, moving the menu to a touch screen is a substantial change to how the game is played rather than a cosmetic re-skin, and it is the reason the project exists in a form distinct from a straight emulator port. The bottom screen also carries the option menus that control the new features. The voxel overworld is toggled from OPTION on the bottom screen by enabling VOXEL 3D, with 3D ANGLE and 3D ZOOM setting the camera, and on a New 3DS the 3D slider raises the effect to a stereoscopic world, with 3D WORLD and 3D DEPTH controls found under OPTION to SETTINGS on the second page. The documentation is careful that this mode is off by default.

## The optional features are opt-in, and the voxel overworld is still partial

The optional voxel overworld is the feature most likely to be misunderstood, because the screenshots show modelled buildings and terrain while the documentation qualifies it heavily. The documentation states that 3D mode is a work in progress, that many towns and routes now have modelled buildings and relief, but that large parts of the map and most interiors are still shown flat, and that the Battle Frontier is only an early start. The stated plan is that more areas will be modelled as the project moves forward. So the honest description is a partially converted world rather than a fully voxelised one, and a player who expects the whole of Hoenn in 3D will be disappointed in specific regions. What the feature does bring is real stereoscopic 3D on a New 3DS, adjustable camera angle and zoom, and an optional 3D battle mode over the voxel world. There is also an HD battle interface, with info boxes and the text box drawn at the top screen's full resolution, which is a separate improvement from the voxel work and applies regardless of whether 3D is enabled. Two features are worth sizing up before you build, because both are conditional. Local wireless play is listed as experimental and covers the Union Room, trades, battles, Berry Blender, minigames and link contests between nearby 3DS systems. The label is the documentation's own, and wireless features in a homebrew port are the usual place where behaviour diverges from the original, so treat it as a reason to test rather than a feature to rely on. The follower Pokémon feature is described as optional, with your lead Pokémon walking behind you using its HeartGold and SoulSilver overworld sprite and answering when you talk to it. The rest of the enhancements are all optional by design: a physical and special split, IVs and EVs on the summary screen, infinite TMs, running indoors, a Repel prompt, visible wild Pokémon and faster speeds. The design principle is consistent across the whole list, which is that the original game remains intact and every change is opt-in.

## Day and night lighting follows a clock you can speed up to 120X

The day and night system is an enhancement inspired by HeartGold and SoulSilver, and it is off by default. Turning it on is a single setting: in OPTION to ENHANCEMENTS, set DAY / NIGHT to AUTO. The behaviour is described precisely, which is what makes it usable. Outdoors, in both 2D and voxel mode, the world gets morning, daylight, sunset and night lighting, with lit windows and street lamps, and nights have a soft moonlit blue while supported voxel windows and street lamps glow warm. Indoors, in caves, in underwater areas, in menus and in classic battles, the original colours are kept, so the system does not fight the parts of the game where a palette change would hurt readability. The clock speed menu offers 1X, 6X, 12X, 24X, 60X and 120X, and the semantics are worth noting. At 1X the lighting follows Emerald's own in-game clock, while higher speeds advance a separate clock, with 60X making a day pass in 24 real minutes, and berries grow with that clock. So a player who wants the effect can see it quickly, and a player who wants the original pacing can leave the speed at 1X.

## Text and graphics come from your own cartridge, in four languages

The build model is the part that makes this port legally distinct from a reimplementation, and it is also what makes the build step non-trivial. The features table says each language is built from your own cartridge of that language, and that texts, graphics and credits come from your ROM, and the documentation is explicit that the builder generates the game data locally from your own dump and that no ROM content is distributed. English, Spanish, French and Italian are supported, and the language is chosen by the cartridge you build from rather than by a menu setting. This is a common pattern in the homebrew scene, and it has a direct consequence for anyone evaluating the project: you need a legitimate dump of the game you want to play, and the build is only as good as that source. The repository backs the model with a `builder/` directory, a LICENSE-PORT.md file, a NOTICE.md file, and an AI_DISCLOSURE.md, that last one being a recent addition to these kinds of repositories.

## A patch-based ROM hack and a full port solve different problems

The alternative worth naming is not another port but another method: modifying the original game so it runs on the console without a full translation, the approach usually called a patch or a hack. The difference shows up in the repository layout. A `patches/` directory, an `upstream.lock` file and a `builder/` directory together suggest a pipeline that applies changes to a known upstream revision and rebuilds a runnable artifact from it, which is closer to the patch model than to a from-scratch reimplementation, even though the result is a native executable. A patch-based project can move faster because it inherits the original engine and only replaces what it needs, and it can break in ways that are hard to diagnose because a change in the underlying game interacts with a change in the patch. A full port, by contrast, has to bring up its own input handling, its own audio, its own rendering path and its own menu, which is why the bottom-screen touch interface and the HD battle text are the visible results of that work here. The trade-off is the opposite one: a port owns its behaviour and can be improved on its own terms, at the cost of a much longer road to a stable release, which is what the Alpha version numbers describe.

## A browser builder replaces the desktop toolchain

There is no install command in the documentation, and that is the point. The distribution model is a web builder at emerald-3ds.com, described as generating and downloading the latest version from your own supported ROM, with no desktop builder or source code download required. The site is where the complete installation and update instructions live, along with sound setup and a frequently asked questions section, and the documentation tells you to start there whether you are installing for the first time, updating or troubleshooting. The same section asks that you read those instructions and the FAQ before opening an issue or asking on Discord, and asks that any question that remains unanswered include your console or emulator, your game version and the exact error message. The documentation also links a community Discord and a Ko-fi page for supporting the project. In other words, the documentation boundary of this project sits on a website rather than in the repository, and the repository itself is the source, the changelog and the documentation directory.

## Alpha tags, a custom licence and a documented build layout

The project is young and the versioning says so. The three most recent releases are Alpha 0.3.0, Alpha 0.3.1 and Alpha 0.4.0, published on 2026-10-07, 2026-10-10 and 2026-10-16, and the last push to the repository was on 2026-10-20. A CHANGELOG.md, a CONTRIBUTING.md and a `docs/` directory sit at the root next to the port directory and the builder, and the topics and file names suggest a project that keeps a written record of what changed between alphas. The licence is the detail to look at carefully. The repository records it as other, a custom licence that GitHub cannot classify, with a pointer to the LICENSE file, and the root also carries LICENSE-PORT.md and NOTICE.md. That combination is standard for a project that reuses code from an upstream game and third-party libraries, since the port licence and the notices are separate documents from the project's own terms. Anyone redistributing builds or deriving work from the source has to read those three files rather than assume a standard open source licence, and the documentation does not summarise their terms.

## Conclusion

Emerald 3DS is a good fit for a 3DS owner who has a legitimate copy of the cartridge and wants the adventure to run natively with a touch interface and an optional voxel overworld, since the browser builder removes the need for a desktop toolchain and the documentation is explicit that no ROM content is distributed. It is a poor fit for a player on a modern 3DS-family console that cannot run homebrew, and a poor fit for anyone who expects a finished product, since the documentation calls 3D mode a work in progress and says large parts of the map and most interiors are still shown flat. Before you build, read the LICENSE file, because the repository records a custom licence that GitHub cannot classify and the root contains LICENSE-PORT.md and NOTICE.md, and note that the recent tags are Alpha releases, with v0.4.0 published on 2026-10-16 and the last push to the repository on 2026-10-20.

## FAQ

### What is Emerald 3DS and does it need an emulator?

Emerald 3DS is a native Nintendo 3DS port of Pokemon Emerald that runs as homebrew directly on the console's ARM11 using libctru, Citro2D and Citro3D, without an emulator. The game runs on the top screen and a dedicated touch interface on the bottom screen replaces the START menu.

### How do I get the latest Emerald 3DS build?

Visit emerald-3ds.com, which generates and downloads the latest version from your own supported ROM. The site hosts the complete installation and update instructions, sound setup and the FAQ, and no desktop builder or source code download is required.

### Is the voxel overworld in Emerald 3DS finished?

No. The documentation calls 3D mode a work in progress, saying that many towns and routes have modelled buildings and relief while large parts of the map and most interiors are still shown flat, and that the Battle Frontier is only an early start. It is off by default and enabled under OPTION on the bottom screen.

### What licence is Emerald 3DS released under?

The repository records a custom licence that GitHub cannot classify, with a pointer to the LICENSE file, and the root also contains LICENSE-PORT.md and NOTICE.md. The documentation does not summarise the terms, so those files are the place to look before redistributing anything.

## Sources

- [Issues](https://github.com/ZallaxDev/emerald-3ds/issues)
- [README](https://github.com/ZallaxDev/emerald-3ds/blob/main/README.md)
- [Releases](https://github.com/ZallaxDev/emerald-3ds/releases)
- [ZallaxDev/emerald-3ds on GitHub](https://github.com/ZallaxDev/emerald-3ds)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zallaxdev-emerald-3ds
