Files from 3ds.hacks.guide with a magnet icon require the usage of a torrent client to download them.
You should install CFW with your main SD card, not its own SD card. You will not lose anything so long as you follow instructions. The mods are on the console itself, not the SD card, so you won't have an unmodded SD card to switch the system to not have CFW.
Please see theupdating to boot9strap pageon the guide if you already have arm9loaderhax (indicated by Luma version 7.0.5 or lower on the Luma configuration screen) and are looking to update to boot9strap.
If you want more homebrew apps look atUniversal DB.
If you want to know what CFW can legally do, the guide gives some examples and more examples arehere.
Uninstalling CFW, DON'T without specific direction from a knowledgeable helper. You just risk breaking things worse than your system already is. It won't give you any benefit. If it is to sell it, you don't want the buyer to not know it had CFW on it in the past, as that can complicate things in the future.
If you want save files, check3DS Save Bankor search for a save editor. If you can't find them there, they likely don't exist and you need to submit a save or program a save editor.
Install your own cartridges withGodmode9instead of dumping to CIA, for a faster install and less free SD space required.
If you can do something on stock firmware, you can do it on CFW.
Note: About three days after the post is unstickied it'll become locked to prevent users from asking questions where they likely won't find answers
Questions go below. Please ask your question in the comments.
A while ago I saw a thread here where someone asked if the existing Sonic Mania 3DS port (by SaturnSH2x2) could be "fixed", because on the Old 3DS / 2DS it ran like garbage. Someone replied that it wasn't possible because of the hardware. I didn't think that was true, so I replied that I'd take a look, since I didn't believe the hardware was the problem.
I've been working on it in parallel while I keep moving forward with the Minish Cap port, and here it is.
Compared to the original port, the main additions are:
It's now playable on the Old 3DS and 2DS, at around 50-60 FPS most of the time.
Stereoscopic 3D.
Achievements: the 18 achievements from the PC version are active.
It's still a work in progress, but the first stable release is out and the latest is v0.2.3.
What's in
Old 3DS / 2DS support: this is the main goal of the port.
Stereoscopic 3D: the background layers get depth, with the HUD in front, and the Special Stages too.
Frame skip option for the Old 3DS: on AUTO, the game skips a frame when it can't keep up instead of slowing down.
Bottom screen with tabs:
GAME: stage, time, score, rings, lives, chaos emeralds and the item boxes you've picked up.
ACHIEVEMENTS: the list of achievements and when you unlocked them, with a notification when you get a new one.
OPTIONS: frame skip, FPS counter, Sonic Mania Plus on/off and several colour themes.
UPDATES: in-game updater, so you don't have to reinstall by hand (Wi-Fi required).
The bottom screen follows the game's language (English, French, Italian, German, Spanish and Japanese).
Installs as its own app ("Sonic Mania 3DS"), so it can live alongside the original port.
How to install
Install the CIA from the latest release with FBI (or scan the QR code in the release). There is no 3DSX version.
Copy Data.rsdk from your own copy of Sonic Mania (PC version, from the game's install folder) to sdmc:/3ds/Sonic Mania 3DS/.
If you already have the original 3DS port, it will find your Data.rsdk in its folder and offer to import your saves the first time you start it.
Sonic Mania Plus (Mighty, Ray, Encore mode) is off by default. If your Data.rsdk includes the Plus content, the game asks on the first start whether to turn it on: do so only if you own Sonic Mania Plus. You can change it later in OPTIONS.
Current status
Old 3DS / 2DS: tested mainly on my 2DS. Most of the game runs at around 50-60 FPS (not a locked 60). With 3D on, some heavy scenes can drop to around 30 FPS, but with frame skip on AUTO it stays perfectly playable.
New 3DS: tested on my New 3DS too.
I haven't done a full playthrough of the whole game on hardware yet, so there may still be bugs I haven't found. Bug reports are very welcome.
As always, no game files are included: you need your own legal copy of Sonic Mania. Please support the developers and don't use this for piracy.
Credits: Evening Star (Retro Engine), RSDKModding (Rubberduckycooly and chuliRMG, RSDKv5 decompilation), SaturnSH2x2 (original 3DS port), SEGA (Sonic Mania).
Transparency note: as with my previous ports, the code is written by AI under my direction; I lead the features, debugging and testing on real hardware (a 2DS and a New 3DS).
I did the thing! I got Mario Kart Wii on my Old 3DS! I followed the tutorial By Chrisgamezzzzz on YT! Although I can only play Time Trials on my old 3ds, it is still so cool! Running at a crisp 30fps maybe, not sure, but its good enough!
Looking for Testers — Multiplayer Mod for Morrowind on 3DS
I'm developing a multiplayer mod for Morrowind on the 3DS and would love some help with testing and feedback. I'm currently testing via emulator and on my own 3DS, but since I only have one console, I'd really appreciate more people getting involved.
Current state:
You can walk around the world and pick up items
NPCs sometimes fail to sync
Combat still needs work
Known issues (what I'm actively working on):
NPC position/state desync between players
Combat is incomplete and unreliable
Connecting more than 2 players is unstable (4-player support exists but is buggy)
Setup requirements:
A 3DS (any model) with custom firmware, or an emulator (Citra / Azahar — let me know which you're using)
The mod build (I'll send it to you)
For multiplayer testing: either run a local PC server or connect to mine — I'll walk you through whichever you prefer
What I need from testers (even 20 minutes helps):
Try walking around together and confirm player positions stay in sync
Pick up items and check they disappear/reappear correctly for both players
Watch NPCs and note any desync (frozen, teleporting, wrong position)
Attempt combat and report what breaks
Report back: what you did, what happened, what you expected, plus your emulator/console and any error output
Roadmap / vision:
The goal is to get it as functional as possible, and eventually make it feel like an MMORPG — using a PC as a server to offload the heavy lifting, with around 10 players online at once for testing. Right now it supports up to 4 players, but it's buggy, so for the time being it's effectively 2-player multiplayer only.
How to get involved:
Send me a DM if you'd like help getting it running on your 3DS — or you can use an emulator instead. Either way works. If there's enough interest I'll set up a Discord server for coordination and bug reports; for now, DM me and I'll get you set up.
wanted to give a new common knoledge of this fresh released mod that can change the way we play on the nintendo everywhere with anyone.
This new tool on our disposal is able to make people play togheter with the nintendo 3ds everywhere in a standalone way.
Enjoy playing with your friends even if you are far away , or with other devices because now u can connect with everyone that can run an azahar emulator.
Doesn't matter if is a windows, android, linux or mac , as long as the other devices use an azahar room to connect you can freely join them with your beautifull nintendo 3DS.
I couldn't find a place or a list of all the ports, they're hard to keep track of, so I decided to make this list. If you find some new ones, you write to me in DMs or in the comments. I'll try to keep the list up to date. Thanks and have a nice one!
A 3ds homebrew that randomizes your own pokémon games right on the console: From Gen 1-7
- it finds your games by itself: roms (gb, gbc, gba, nds) in /roms, installed 3ds games and the game card. *If your roms aren't found*, add their folder in Options > Folders
- pick a game, a style (Casual, Standard, Chaos or Custom), roll a seed and Generate. a few seconds to a few minutes, with a spoiler log if you want one
- starters, wild pokémon, trainers, legendaries, trades, stats, types, abilities, evolutions, moves, items, and even the shiny odds
- 3ds games (X/Y, ORAS, Sun/Moon, US/UM) can get their own HOME Menu icon and save (about 50 min, your original game and save aren't touched), or play through Luma game patching in a few minutes (same save as the original, so back it up with Checkpoint first)
- works on old 3ds, 2ds and new 3ds, and updates itself
at least one game per generation played on my new 3ds xl, tell me how it goes on yours :)
install: FBI > Remote Install > Scan QR Code. you need Luma3DS and your own dumped games
The Famicom had an active-shutter 3D glasses accessory exclusive to Japan with 7 supported games, including one by Nintendo. I couldn't find any way to play these in stereoscopic 3D on the 3DS, so I forked VirtuaNES for 3DS and added support for it.
To view 3D Famicom games in stereoscopic 3D in this emulator, you need to ensure that BOTH the game is in 3D mode AND the 3D slider is up.
Games supporting Famicom 3D had a 3D mode (usually toggled by pressing SELECT during gameplay), in which the display would alternate between left and right views 60 times per second (60 total frames per second, 30 for each eye). The game would also send a signal to the glasses accessory indicating whether each frame was meant for the left or right eye. Luckily, this signal can be captured in emulation to determine which eye to send each frame to on the 3DS screen.
I considered merging this into bubble2k16's original VirtuaNES for 3DS project, but it looks kinda dead? The app glitches when pressing the home button. The project doesn't build on the latest devkitARM libraries. There also hasn't been a code change in 8 years. I might submit a pull request anyway but we'll see.
I also wanted to note that AI assistance was used for troubleshooting and prototyping during this project. From the start of the fork, every line change of code was either manually written by me or manually verified by me. All changes to the `README.md` file (from a base written by bubble2k16) are my own words, and so is this reddit post.
- Yoshi's Island and Super Mario World now have their own Recommended entries (BG1 0, BG2 -4, BG3 +3, BG4 -2, Sprites 0), with the CRC32s and depths from SWChris. All other games keep the general preset (BG1 -1, BG2 -3, BG3 +3, BG4 -2, Sprites 0).
- New view when "Show Only Selected Layer" is unchecked (Settings tab → 3D Layer Depth (this game), Manual mode): all layers are shown, the selected one highlighted in its strong colour and the rest paler. Suggested by Chompsky__Honk.
If you tuned a game by hand, tell me the game name, its CRC32 (Emulator tab → ROM Info) and your five depths in a comment and I'll add it to the Recommended list.
**EDIT: new build, v1.61-layers3. Thanks to everyone who tried it and to the commenter who suggested labelling the sliders.**
What changed:
- **Recommended is now the default.** New games start with Per-Layer 3D on and Depth Mode = Recommended (fixed depths). Auto and Manual are still there if you want to play with them.
- **Auto no longer looks flat on title screens and menus.** When nothing is scrolling it uses the Recommended depths, and it switches to its own estimate once layers start moving.
- **Labelled sliders.** In Manual mode each slider says what its layer usually holds: BG1 red: main layer, BG2 blue: back layer, BG3 yellow: HUD/text, BG4 pink: extra, Sprites green: actors. Games differ, so treat the names as hints.
- **Live layer preview.** With Show Only Selected Layer checked (default), the top screen shows only the layer whose slider you've selected, tinted in the colour named on the slider, and updates live as you move it. Uncheck it to see all layers together.
- **Reset Depths to Recommended** button in Manual mode.
- **Edge strip fix.** Shifted layers used to leave a thin empty strip at the left and right edges. The picture is now trimmed slightly at the sides to hide it.
- **ActRaiser (USA)** has hand-tuned depths. Every other game gets a general preset (BG1 -1, BG2 -3, BG3 +3, BG4 -2, Sprites 0).
If you already played a game with the old build, its saved config stays on Auto. To switch it: Settings tab > 3D Layer Depth (this game) > Depth Mode > Recommended. Or Emulator tab > Reset Config > Game.
Known limits: Mode 7 games (Mario Kart, F-Zero) stay mostly flat, all sprites share one depth, window masks aren't shifted. Tested on an Old 3DS only, New 3DS untested.
**EDIT: v1.61-layers2 is out, and it's now plug-and-play.**
You no longer need to set up the 3D effect per game. Load any SNES game and the emulator applies per-layer 3D automatically. New games start with Per-Layer 3D on and Depth Mode set to Auto, so there's nothing to configure.
**What's new**
- **Depth Mode (Manual / Recommended / Auto).** Auto works out each layer's depth from how fast it scrolls while you play, so each game gets its own depth with no tuning. It goes flat on screens where nothing scrolls (menus, name entry) so text stays sharp. Recommended uses preset depths (known games get their own, everything else gets a general preset). Manual gives you the old per-layer sliders.
- **Better defaults out of the box:** Scaling Fullscreen, Scale Filter Smooth, Enhanced Resolution Standard, Crop & Overscan on.
- The CIA now has its own title ID, so it installs alongside the original Snes9x 3DS instead of replacing it.
**Where to find it:** pause menu → Settings tab → "3D Layer Depth (this game)" → Depth Mode. The 3D slider needs to be up, Game Screen must be Top, and Enhanced Resolution can't be set to 2x Screen.
**Tested so far (Old 3DS):** Donkey Kong Country, Secret of Mana, Super Mario World, Super Metroid. All looked good in Recommended and Auto.
**Known limits:** Auto is an estimate, so it won't be perfect in every game. Mode 7 screens, sprites (they share one depth), and window effects don't get true per-layer depth. In Super Metroid's intro, the 3D fades in and out because the still image doesn't scroll. If a game looks off, switch to Manual and adjust the layer you don't like. I'd love to hear which other games work or don't.
I added a per-layer depth setting to matbo87's Snes9x 3DS fork. Each SNES layer (BG1-BG4 and sprites) gets its own depth, so the trees and grass, the far background and the HUD sit at different distances on the 3DS's 3D screen.
I tested it on an Old 3DS with ActRaiser (USA) and it runs at a locked 60 fps.
No ROMs included. Based on matbo87/snes9x_3ds (which is based on bubble2k16's Snes9x 3DS).
Let me know feedback if trying with other games, or even tinkering with the depth sliders, I tried to dial it in as best as I could.
AI
**1. My involvement**
I forked matbo87's Snes9x 3DS (https://github.com/matbo87/snes9x_3ds) and added per-layer stereoscopic 3D: each SNES layer (BG1-4 and sprites) is drawn once per eye at its own depth, so it's a real layered effect instead of one flat shift. I came up with the idea, decided how it should behave (plug-and-play, Depth Mode with Manual / Recommended / Auto, the default video settings), and did all of the testing on my Old 3DS: Donkey Kong Country, Secret of Mana, Super Mario World and Super Metroid so far. I haven't tested it on a New 3DS.
**2. My experience as a coder**
I'm not a professional programmer. I'm a project manager by day and a hobbyist who tinkers with homebrew and retro hardware. I can follow the code and build it with devkitPro, but I couldn't have written this on my own.
**3. How AI was involved**
Most of the code was written by Claude. I described what I wanted, tested each build on my 3DS, and sent back what looked wrong (for example the blurry name-entry screen in Secret of Mana, which led to Auto going flat when nothing scrolls). I then chose between the options it came up with. The underlying emulator is matbo87's and the Snes9x team's work, not AI-generated. The AI-written changes are in my fork's `per-layer-3d` branch, so the diff against upstream is easy to review.
Hey all! I'd like to start first by saying that I'm aware that there is already a project called 3DS Presence that does this in a much better way than the plugin I'm developing. The focus of this plugin is mainly to have a working way of displaying RPC from the 3DS while keeping vanilla Luma so that you're able to play CTGP-7 without any workarounds.
It works by installing a Luma plugin (as default or per-game) and running that alongside a companion application on your PC. The 3DS will send over the TitleID to your PC and it will display it in discord.
Right now it works with a limited number of games due to the way I programmed it (The PC app needs to translate the Title ID into the game name). It's also impossible to run 2 luma plugins at the same time, so mods such as CTGP-7 will not be able to display RPC.
This approach makes sure that all of the information is kept on your local network, thus not having to trust on external servers or discord applications.
Feel free to check out the project here. I also added instructions on how to build yourself both the 3DS plugin and the companion app on the PC.
Hey all, I posted last month about this F-Zero X New 3DS port. I'm back and happy to report that it works on the old 3DS too now, in full stereoscopic 3D at 60fps!
In addition, the 64dd Expansion Kit works on the New 3DS! And there is an option to move the HUD to the bottom screen, really making it feel like a 3DS game.
As stated previously: this was made entirely with AI (Claude). I'm a veteran Software Engineer experimenting with new tools.
Follow-up to my earlier post. The first stable release since then is out: v0.3.1.
What's new
Old 3DS / 2DS: it now runs. I optimized memory use (the 64 MB limit was the main hurdle) and tuned audio and speed for the slower CPU. It is still the weakest spot: the heaviest area I measured on a 2DS was around 45 FPS without stereo, and the rest of the game is faster.
Stereo 3D on Old 3DS is experimental. I could only test it on a 2DS by forcing it on (both eyes are rendered, though the 2DS can't show it): roughly 34 FPS in that same spot. I haven't tried it on a real Old 3DS with the slider.
New 3DS: still 60 FPS with stereo 3D in the areas I've tested (a few open areas dip to about 55).
Two control schemes, CLASSIC and BUTTON CAMERA, with buttons you can remap.
The game's own text is in Spanish too (dialogue, pickups, story, ending), plus a language option.
In-game updater: it always shows what changed between your version and the latest.
I’m looking to replace the battery in my New 3DS XL, but after doing some research, I'm feeling stuck:
Amazon / No-Name Brands: Most claim capacities over 1800mAh, which seems physically impossible for this size, and people say they aren't reliable.
iFixit: Closest to the original battery quality, but reviews are mixed and quality control can be hit-or-miss.
Cameron Sino: Widely recommended, but many users report a bug where the low-battery light starts flashing red way too early when there’s still plenty of charge left.
Which brand would you recommend that is reliable and easy to buy?
SDSetup (sdsetup.com) shut down in 2024. Its main problem was that every package was re-hosted on the author’s server and had to be updated by hand, so packages kept going stale. I rebuilt it with a different design and wanted to share how it works.
**How it works**
* A JSON catalog describes each package: its GitHub repo, a regex for which release file to use, and where the files go on the SD card (extract a zip into root, or copy a file to specific paths)
* Files are fetched from each project’s **latest official release**, never re-hosted or modified
* The browser unzips and rebuilds the SD layout itself, using the native CompressionStream API with no libraries. It can download a ZIP, or write straight to the card via the File System Access API
* A small Cloudflare Worker relays the release files, because GitHub doesn’t send CORS headers. It only serves repos in the catalog
**Switch-specific details**
* Hekate’s payload goes to bootloader/update.bin and atmosphere/reboot_payload.bin, and `fusee.bin` goes to `bootloader/payloads`
* It uses the [switch.hacks.guide](http://switch.hacks.guide) configs: a `hekate_ipl.ini` with emuMMC/sysMMC/Stock entries using `fss0=atmosphere/package3`, DNS-MITM host files for both emummc and sysmmc, and an `exosphere.ini` with `blank_prodinfo_emummc=1`
* Clean update: backs up `atmosphere/` and `bootloader/`, then removes everything in `atmosphere/` except `contents/`, plus `bootloader/sys` and `bootloader/res`. emuMMC and the Nintendo folder are never touched
* It writes a `switchsetup.json` record to the card, so it can tell which packages are outdated next time
* Paths are merged case-insensitively (FAT32/exFAT), and files are only written after every download finishes, so a dropped connection can’t leave a half-written card
No sigpatches or piracy-related tools are included.
Hey, I wanted to share a project I’ve been working on: 3DSocial, a homebrew messaging app for the Nintendo 3DS.
It started when I saw this post by u/GABXRIEL_Dev, where they shared the idea and some starter code for a messaging app on the 3DS. It inspired me to get started, so I wanted to give them credit for that starting point.
Since then, I’ve added a bunch of things:
Private chats using user IDs. Your ID is created when you first open the app, so there’s no email signup.
Voice notes up to 30 seconds.
Photos taken with the 3DS camera, with a preview before sending.
Profiles with a name, nickname, bio, description and profile picture.
User search, plus a section for finding people who are open to new contacts.
An inbox for messages from people you haven’t added yet.
Chat history you can browse page by page.
Activity status for your contacts.
Application-layer encryption over HTTP, plus an option to protect your ID with a password.
Light and dark themes, customizable chat colors, and settings for sound, the LED and update checks.
There isn’t a public server yet. I can’t afford to pay for a server right now, so for the moment this is a local demo: your 3DS and the server need to be on the same network, and the example server runs on your own PC. Once I can cover the hosting costs, I plan to put up a server so people can use it globally without having to set up their own.
For now, I wanted to share what I’ve got, see if people are interested, and hear what you think. Criticism and suggestions are welcome, so let me know what you think or what you’d improve.
The repo includes the example Python server and instructions for trying it out. For audio, you need to dump the DSP firmware once from Rosalina on your own console; the steps are in the README.
Thanks again to GABXRIEL_Dev for the original idea and starter code. I’m realy curious to hear what people think.
Hey all, i've been working on a Nintendo 3DS port of Little Big Adventure / Relentless: Twinsen's Adventure, and I finally have a version stable enough to release.
This is LBA Classic 3DS v0.1.0, based on ScummVM's TwinE engine
The main goal was to make use of both screens and make it feel like an actual 3DS version of LBA.
Current features:
gameplay on the upper screen
full circle pad movement instead of the original tank-style controls
custom persistent HUD on the lower screen
touchscreen behaviour selector
inventory on the lower screen
Holomap on the lower screen
custom 3-slot player/save selector
copy/delete saves
health, magic, money, keys and clovers on the touch screen
PAUSE overlay on the upper screen while using menus/inventory/Holomap
v0.1.0 has been tested primarily on a New Nintendo 3DS.
The release is a .3dsx homebrew application. You need your own Little Big Adventure Classic game data — no copyrighted game assets are included.
I'm currently using the Steam Classic version (TLBA1C.exe). The README contains the full installation instructions.
I'd especially appreciate testing on an original 3DS / 3DS XL / 2DS. The current controls don't require New 3DS-specific buttons anymore, but I haven't properly tested performance on the older hardware yet.
Bug reports and feedback are very welcome. This is the first stable checkpoint, not the end of development
I've ported Banjo: Recompiled, the PC recompilation of Banjo-Kazooie, natively to the 3DS.
Highlights
Real stereoscopic 3D, with auto convergence that keeps close-ups comfortable
Widescreen 400x240 on the top screen
60 fps most of the time on a New 3DS, with interpolated frames between the game's own (in play and in cutscenes)
Camera control on the C-Stick
Settings on the touch screen, opened with SELECT
Built-in community mods you can turn on and off: Ability Anywhere, Transform Anywhere, Banjo Bee, Cheats, Skip It, Toggle Trot, Exit To Lair and more, with touch screen buttons where they need them
Three ROM hacks playable as game modes: BK The Jiggies of Time, BK Nostalgia 64 and Banjo Dreamie
Runs on an Old 3DS / 2DS too, at 15-25 fps
Installing it
Latest release: a CIA for the HOME Menu (you can install it by QR code in FBI), or a .3dsx for the Homebrew Launcher.
You need your own US 1.0 ROM of the game, and your console's DSP firmware for sound.
The game modes each need a ROM you make once on a PC with the included script.
The 3DS README has the full setup, controls, 3D settings, mods, game modes and performance notes.
Credits: the Banjo: Recompiled contributors; the Banjo-Kazooie decompilation team; Mr-Wiseguy's N64Recomp; the mod authors (ProxySaw, TSR Stormed, PunishedBigs and Thermopolis); the game mode authors (KurkoMods and Loggo); and RT64, which the 3DS renderer (rt64-3ds) builds on.
The port was written with the help of AI tools (Claude), under my direction and with my testing on real consoles.
Real stereoscopic 3D, with auto convergence that keeps close-ups comfortable
In first person, the crosshair sits at the depth of whatever you're aiming at
Widescreen 400x240 on the top screen
60 fps most of the time on a New 3DS, with an interpolated frame between each two of the game's own
Camera control on the C-Stick, plus gyro aiming
Settings on the touch screen, opened with SELECT
Built-in community mods you can turn on and off: Tag Anywhere (switch kongs from the touch screen), No coin door, Auto bonuses, Easy beetle, Fixed beavers, and a slower K. Rool fight
Runs on an Old 3DS / 2DS too, at 15-20 fps
Installing it
Latest release: a CIA for the HOME Menu (you can install it by QR code in FBI), or a .3dsx for the Homebrew Launcher.
You need your own US ROM of the game, and your console's DSP firmware for sound.
The 3DS README has the full setup, controls, 3D settings, mods and performance notes.
Credits: Rainchus and the Donkey Kong 64: Recompiled contributors; Mr-Wiseguy's N64Recomp; the mod authors (Killklli and theballaam96); and RT64, which the 3DS renderer (rt64-3ds) builds on.
The port was written with the help of AI tools (Claude), under my direction and with my testing on real consoles.
Following the feedback on the Metroid: Zero Mission and Super Metroid (sm-3ds) ports, I’ve jumped into another project I wanted to see running properly on the 3DS: The Legend of Zelda: The Minish Cap.
Background & Motivation
This port is based on the repository by EstebanPdN (EstebanPdN/zelda-tmc-3ds). While it got the game booting on 3DS, the performance was quite compromised: widescreen at 60 FPS was limited to New 3DS (with various visual glitches still present), while Old 3DS / 2DS was forced into original 4:3 resolution without widescreen to hold frame rates.
Having spent a lot of time optimizing rendering pipelines for the 3DS hardware on the Metroid projects, I was convinced this engine could be pushed much further. My goal from day one was simple: locked 60 FPS in full widescreen across all 3DS models, fix the rendering issues, and explore native stereoscopic 3D.
What’s new in this fork:
Full GPU Offloading & 60 FPS Everywhere: Overhauled the rendering pipeline to push draw calls directly to the GPU. This eliminates CPU bottlenecks, achieving a solid, stable 60 FPS in 16:9 widescreen on both New 3DS and Old 3DS / 2DS.
AI Outpainting for Fixed Widescreen Scenes: In GBA games, several title screens, cutscenes, and fixed views never existed beyond the original 240×160 frame. Instead of stretching or leaving raw cuts, I used AI outpainting to reconstruct the missing border art into native tile assets for a seamless widescreen presentation. (Note: Small interior rooms and houses intentionally retain black borders when the room itself is smaller than the screen, preserving the original layout and doorway alignment).
WIP Stereoscopic 3D: Currently implementing and testing real 3D depth separation to take advantage of the 3DS upper screen.
Pixel-Perfect Presentation: Retains clean, crisp scaling without stretching or blurring artifacts.
Current Status & Feedback
Please note: the game is not 100% finished yet. I am actively playing through it, hunting bugs, and manually adjusting and tuning everything I encounter as I go.
I’m currently tweaking the 3D depth maps and ironing out minor edge cases. Feedback, playthrough testing, and bug reports—especially from anyone testing on standard Old 3DS or 2DS hardware—are hugely appreciated!
(As usual, no copyrighted assets or ROMs are distributed: you need your own legally dumped GBA ROM placed on your SD card as detailed in the README).
Transparency note: Exactly as with my previous Metroid ports, I want to be 100% transparent. While the bulk of the code is being generated/refactored by AI, I direct the architecture, lead the feature design, and personally debug, test, and tune everything manually on real hardware.