[RELEASE] DXX-3DS - Descent 1. Stable mono and experimental Stereo3D build

  • Thread starter Thread starter indionicarao
  • Start date Start date
  • Views Views 3,046
  • Replies Replies 18
  • Likes Likes 6

indionicarao

Active Member
Newcomer
Joined
Mar 19, 2015
Messages
32
Reaction score
53
Trophies
1
Age
44
Location
Portland, Oregon
XP
312
Country
United States
Hello everyone! I'm excited to announce the release of DXX-3DS, a Nintendo 3DS port of the classic 6DoF shooter Descent.
This is a fork of DXX-Rebirth that I have adapted to run with hardware acceleration. This port translates the engine's OpenGL 1.1 calls directly to the 3DS's PICA200 GPU via picaGL . It runs at a
smooth, highly playable framerate and has been tailored specifically for the New 3DS family (taking full advantage of the C-Stick and ZL/ZR buttons).
### Features & Fixes

• Full Hardware Acceleration: Uses the PICA200 GPU for rendering.
• Modern Dual-Stick Controls: Circle Pad for pitch/turn, C-Stick for sliding.
• Quick Save / Quick Load: Bound directly to the controller (START+X / START+Y).
• Controller-Friendly UI: The pilot selection screen is bypassed, cheats are enabled, and you can select levels directly with the D-Pad.
• Bilinear Texture Filtering enabled by default.

### Two Different Builds

I am offering two different versions of the port on the GitHub releases page:

1. Stable (Mono)
The standard, highly optimized 2D build. Choose this for the absolute best performance and framerate.

2. Experimental (Stereoscopic 3D)
Yes, true stereoscopic 3D is supported! This branch actually renders the scene twice per frame (one for each eye). Because the GPU is doing double the work, expect a lower framerate than the stable
build.

Exclusive Stereo Controls:

• START + D-Pad Up / Down: Adjust stereo separation strength
• START + ZR: Cycle stereo method (side-by-side / anaglyph / off)
• START + L / R: Adjust convergence distance

Important Note on the Stereo Build: Both CIA files share the same Title ID. You cannot have both the Stable CIA and the Stereo CIA installed via FBI at the same time. If you want to use the Stable
build as your main game but still try out the 3D, install the Stable CIA and run the Stereo version via the Homebrew Launcher ( .3dsx format).

### Installation Instructions

Like most engine ports, you must supply your own game data. The game data ( descent.hog and descent.pig ) is copyrighted and not included with this download.

1. Create a folder on your SD card at sdmc:/3ds/D1/ .
2. Copy descent.hog and descent.pig from a legitimate copy of the game (such as the Steam or GOG release) into the D1 folder.
3. Install the .cia using FBI, or run the .3dsx from the Homebrew Launcher.

### Controls

• Circle Pad: Turn / Pitch
• C-Stick: Slide
• X / B: Accelerate / Reverse
• A / Y: Slide Right / Slide Left
• R: Fire Primary
• L: Drop Bomb
• ZL / ZR: Rear View / Flare
• D-Pad Up / Down: Cycle Cockpit View
• D-Pad Left / Right: Cycle Weapon
• SELECT: Automap
• START: Menu / Abort
• START + SELECT: Bring up the controls help screen

### Downloads & Source Code

• Releases: https://github.com/iNdioNicarao/dxx-3ds/releases
• Source Code: https://github.com/iNdioNicarao/dxx-3ds

A massive thank you to everyone in the homebrew scene whose tools (like picaGL and libctru ) made this possible. Let me know what you think***

I dont plan to continue doing much more on this for the time being. I just got a new job and will not have sufficient time to put in. but never say never. we'll see.
 

Attachments

**Update — DXX-3DS v2.0.7 is out**

Thanks for the support on the v1.0 release! I could'nt stay away for long. I've pushed a big update. The biggest change: **there is now one build, not two. ** Stereoscopic 3D was merged into the main `master` build and is **3D-slider gated** — raise the 3DS 3D slider for depth! No more picking between a "stable" and a "stereo" CIA.

**What's new in v2.0.7**
- **Stereoscopic 3D in the main build** (was the separate experimental branch).
- **On-screen keyboard (OSK)** — you can now enter a pilot name and have **multiple named pilots / save slots**. Named saves actually persist now (v1.0 had no keyboard, so they weren't possible).
- **Demo playback & recording** both work (neither was in v1.0).
- **Power-off crash fixed** — no more ARM11 crash when closing the game / powering off.
- **Overlay fixes** from hardware testing: the automap no longer flickers over gameplay with the slider up, closing/reopening the lid no longer leaves both screens black, and the "Prepare for Descent" banner after a demo shows cleanly. Please let me know if you find instances of this issue.

**Stereo controls (hold START)**
- START + D-Pad Up/Down — stereo separation strength
- START + ZR — toggle method: PARALLEL <-> TOE-IN
- START + L / R — convergence distance


**Known issue: ** the in-game **Cheat menu is temporarily disabled** in v2.0.7 — its checkboxes can't be toggled on-device yet. It'll return fixed in a later release.

**Download: ** DXX-3DS releases — https://github.com/iNdioNicarao/dxx-3ds/releases — grab d1x-3ds-2.0.7.cia. The old v1.0 releases are struck/superseded; v2.0.7 is the one to use. Install with FBI (or run the .3dsx via the Homebrew Launcher).

Enjoy, and let me know what breaks. hopefully Descent 2 is next...
 

Attachments

**Update — DXX-3DS v2.0.7 is out**

Thanks for the support on the v1.0 release! I could'nt stay away for long. I've pushed a big update. The biggest change: **there is now one build, not two. ** Stereoscopic 3D was merged into the main `master` build and is **3D-slider gated** — raise the 3DS 3D slider for depth! No more picking between a "stable" and a "stereo" CIA.

**What's new in v2.0.7**
- **Stereoscopic 3D in the main build** (was the separate experimental branch).
- **On-screen keyboard (OSK)** — you can now enter a pilot name and have **multiple named pilots / save slots**. Named saves actually persist now (v1.0 had no keyboard, so they weren't possible).
- **Demo playback & recording** both work (neither was in v1.0).
- **Power-off crash fixed** — no more ARM11 crash when closing the game / powering off.
- **Overlay fixes** from hardware testing: the automap no longer flickers over gameplay with the slider up, closing/reopening the lid no longer leaves both screens black, and the "Prepare for Descent" banner after a demo shows cleanly. Please let me know if you find instances of this issue.

**Stereo controls (hold START)**
- START + D-Pad Up/Down — stereo separation strength
- START + ZR — toggle method: PARALLEL <-> TOE-IN
- START + L / R — convergence distance


**Known issue: ** the in-game **Cheat menu is temporarily disabled** in v2.0.7 — its checkboxes can't be toggled on-device yet. It'll return fixed in a later release.

**Download: ** DXX-3DS releases — https://github.com/iNdioNicarao/dxx-3ds/releases — grab d1x-3ds-2.0.7.cia. The old v1.0 releases are struck/superseded; v2.0.7 is the one to use. Install with FBI (or run the .3dsx via the Homebrew Launcher).

Enjoy, and let me know what breaks. hopefully Descent 2 is next...
Hi there. Great work ! However, no download option on GITHUB, only CIA here at GBATEMP. Do you have a 3dsx to share of latest version ? I have no more space (icon/cia limit on home screen) on my N3DS and I do not want to unintall a game/app to test it. Thanks.
 
Hi there. Great work ! However, no download option on GITHUB, only CIA here at GBATEMP. Do you have a 3dsx to share of latest version ? I have no more space (icon/cia limit on home screen) on my N3DS and I do not want to unintall a game/app to test it. Thanks.
My bad, i will get that out as soon as I can.
Post automatically merged:

https://github.com/iNdioNicarao/dxx-3ds/releases#release-v2.0.8

What's new in 2.0.8
Bottom-screen HUD toggle: the top-left touch button now cycles the HUD info display (Standard -> Alternate -> Off). Stereo -/MODE/+ buttons removed; 3D depth is controlled by the 3DS hardware depth slider (parallel-only stereo).
Full-screen HUD stats now draw correctly in stereo mode (per-eye gauge pass), so energy/shield/weapon info stays visible with the cockpit off.
HUD button re-arms after Menu -> Resume (no longer disappears on resume).
Cheat menu is now fully usable with the gamepad: the A button toggles CHECK/RADIO items in place (no keyboard required).
Controls screen updated (START = Pause; BOTTOM SCREEN section; automap zoom is the Circle Pad).
Stereo tuning: gentler maximum separation with a lower minimum; toe-in mode and the method/convergence settings were removed in favor of simple slider-driven parallel stereo.
 

Attachments

Last edited by indionicarao,
  • Like
Reactions: CrashMidnick
My bad, i will get that out as soon as I can.
Post automatically merged:

https://github.com/iNdioNicarao/dxx-3ds/releases#release-v2.0.8

What's new in 2.0.8
Bottom-screen HUD toggle: the top-left touch button now cycles the HUD info display (Standard -> Alternate -> Off). Stereo -/MODE/+ buttons removed; 3D depth is controlled by the 3DS hardware depth slider (parallel-only stereo).
Full-screen HUD stats now draw correctly in stereo mode (per-eye gauge pass), so energy/shield/weapon info stays visible with the cockpit off.
HUD button re-arms after Menu -> Resume (no longer disappears on resume).
Cheat menu is now fully usable with the gamepad: the A button toggles CHECK/RADIO items in place (no keyboard required).
Controls screen updated (START = Pause; BOTTOM SCREEN section; automap zoom is the Circle Pad).
Stereo tuning: gentler maximum separation with a lower minimum; toe-in mode and the method/convergence settings were removed in favor of simple slider-driven parallel stereo.
Thanks for the files and the update !

I tested the game on N3DS (1st level only), here is my feedback :

- in game there is screen tearing / texture "shaking"
- 3D depth default settings are very "agressives". I did not tweak the settings but maybe it could be great to lower the 3D effect by default.
- Midi files : I do not know why but during the 1st launch, on my N3DS, the midi files played correctly (in your readme it seems to be impossible). I converted them to mp3 anyway. How to be sure that the game is using the mp3's and not the midi files ?
- Midi files (again) : is it possible to not generate them again after we converted them to mp3/wav to save space on the SD card ?


I tested the game on old 3DS as well : unfortunately, the game crash before to go ingame. It loads the music of the 1st level during the loading screen and then crash. I tried MP3 and WAV without success. Memory problem/leak ?

This is already a solid port you've done here, congratulations ! And the 3d effect is very nice for this game, really awesome ! Thanks for your hard work.
 
  • Like
Reactions: indionicarao
**Update — DXX-3DS v2.0.7 is out**

Thanks for the support on the v1.0 release! I could'nt stay away for long. I've pushed a big update. The biggest change: **there is now one build, not two. ** Stereoscopic 3D was merged into the main `master` build and is **3D-slider gated** — raise the 3DS 3D slider for depth! No more picking between a "stable" and a "stereo" CIA.

**What's new in v2.0.7**
- **Stereoscopic 3D in the main build** (was the separate experimental branch).
- **On-screen keyboard (OSK)** — you can now enter a pilot name and have **multiple named pilots / save slots**. Named saves actually persist now (v1.0 had no keyboard, so they weren't possible).
- **Demo playback & recording** both work (neither was in v1.0).
- **Power-off crash fixed** — no more ARM11 crash when closing the game / powering off.
- **Overlay fixes** from hardware testing: the automap no longer flickers over gameplay with the slider up, closing/reopening the lid no longer leaves both screens black, and the "Prepare for Descent" banner after a demo shows cleanly. Please let me know if you find instances of this issue.

**Stereo controls (hold START)**
- START + D-Pad Up/Down — stereo separation strength
- START + ZR — toggle method: PARALLEL <-> TOE-IN
- START + L / R — convergence distance


**Known issue: ** the in-game **Cheat menu is temporarily disabled** in v2.0.7 — its checkboxes can't be toggled on-device yet. It'll return fixed in a later release.

**Download: ** DXX-3DS releases — https://github.com/iNdioNicarao/dxx-3ds/releases — grab d1x-3ds-2.0.7.cia. The old v1.0 releases are struck/superseded; v2.0.7 is the one to use. Install with FBI (or run the .3dsx via the Homebrew Launcher).

Enjoy, and let me know what breaks. hopefully Descent 2 is next...

Ouuuhh I love this! Thank you for the hard work of this port! I grew up with Descent in the 90’s so this game e close to my heart ❤️

Are you by chance the same person that’s worked on the Heretic/Hexen ports?
 
  • Like
Reactions: indionicarao
Ouuuhh I love this! Thank you for the hard work of this port! I grew up with Descent in the 90’s so this game e close to my heart ❤️

Are you by chance the same person that’s worked on the Heretic/Hexen ports?
Awesome i'm glad you are enjoying it! This is my first contribution to the retro gaming community. Sorry not sure who worked on the Heretic/Hexen for the 3ds but those are some pretty kick ass games!
Post automatically merged:

Update — DXX-3DS v2.0.9 is out

Thanks for the support! Another update's up. Big thanks to CrashMidnick for the feedback — especially on the music. That MIDI thing you spotted was leftover junk from the upstream dxx-rebirth code (the 3DS mixer can't actually decode it), so I ripped it out. It won't regenerate either, so you can delete that old midi/ folder and free up the SD space.

What's new in 2.0.9:

Bottom-screen minimap (live tactical radar). Always-on while you play, separate from the full-screen SELECT automap. Room outlines, gold doors, object blips (hostages / power-ups / robots / players) with labels, and a heading tick. Drag to rotate (stays inside the map so the edge buttons keep working); double-tap to recenter. ~30 Hz.

Gentler stereoscopic 3D. Per CrashMidnick's note that the default depth was "very aggressive" — it's now much softer and hard-capped, comfortable at any slider position.

Music. Now plays your own tracks from mp3/ / ogg/ / wav/ (named gameNN). Grab a DXX-Rebirth music AddOn pack, or convert the game's own HMPs from descent.hog with TiMidity++ + a soundfont.

Cheat menu works with the gamepad now .

Download: Releases · iNdioNicarao/dxx-3ds · GitHub — d1x-3ds-2.0.9.cia (or the .3dsx via Homebrew Launcher). Still need your own descent.hog / descent.pig.

Enjoy, and keep the feedback coming.
 

Attachments

Last edited by indionicarao,
thank you! Can we expect support for D2 anytime soon?
Yes I will be working on D2, you can expect it at some point. Just don't know how soon.
Post automatically merged:

Update — D1X-3DS v2.1.0 is out!
Thanks everyone for the feedback and support! v2.1.0 is live with some major new features, quality-of-life additions, and visual upgrades.

Special thanks to @CrashMidnick for all the thorough hardware testing and reports on earlier builds, and to @bakuDD for researching and recommending the authentic Roland SC-55 soundtrack solution!
──────
### What's New in v2.1.0
• Tri-View Bottom-Screen Tactical Dashboard:
• Real-time 3D Rear-View Mirror: Live 3D camera looking directly behind your ship with an unobstructed wide field of view.
• Tactical Mini-Radar: 360° radar sweep showing nearby hostile robots (red), hostages (green), and power-ups (yellow), complete with dedicated in-box + / − zoom buttons.
• Mini Wireframe Automap: Real-time 3D wireframe overview of the local mine structure with independent + / − zoom buttons.
• Tap-to-Fullscreen: Tap either the radar or minimap box to expand it to full bottom-screen view; tap again to return to Tri-View.
• Quick Touch Bar: On-screen buttons to quickly toggle HUD, toggle Gyro, cycle weapons, save, or pause.
• Hardware-Calibrated Gyroscope Aim Assist:
• Precision handheld motion aiming — tilt the 3DS to pitch and yaw your ship.
• Built-in drift suppression and auto-calibration to counteract resting tremors and tilt angles.
• Dedicated menu under OPTIONS -> CONTROLS -> GYROSCOPE SETTINGS with tunable Deadzone (0–16), Sensitivity (1–16), and on-demand "Calibrate Zero Bias".
• Toggle gyro on/off anytime during gameplay via the bottom-screen GYRO button.
• Visual Save Game Thumbnails:
• Save slots now capture and display a live gameplay screenshot thumbnail directly in the save/load menu so you instantly recognize your progress.
• Seamless Mid-Game Flow:
• Starting a new game or loading an existing save from the pause menu now jumps directly into gameplay without requiring a manual "Abort Game".
• Visual & Performance Upgrades:
• 24-Bit True Color & Dithering: Eliminates color banding across dark mine walls and lighting gradients.
• Crisp Font Rendering: Point/nearest-neighbor filtering enforced on fonts so HUD and menu text stay sharp while 3D geometry retains smooth bilinear filtering.
• +10% Ambient Brightness Boost: Mine tunnels are naturally illuminated without washing out contrast.
• Sharper Top-Screen Automap: 40% thinner wireframe lines for high-precision navigation.
• Lifecycle Stability: HOME and POWER button handling pumped cleanly across all menus and game states.
──────
### High-Fidelity Roland SC-55 Music Setup
For authentic Roland Sound Canvas music:
1. Download Brandon Blume's SC-55 MP3 Pack: Duke4.net SC-55 Archive https://sc55.duke4.net/mp3/descent1_mp3.zip
2. Extract the 27 .mp3 files (game01.mp3–game22.mp3, briefing.mp3, etc.) directly into /3ds/D1/mp3/ on your SD card.
3. The engine will automatically pick them up and play them! (Fallback chain: wav/ → mp3/ → ogg/).
──────
### Downloads
• GitHub Release: https://github.com/iNdioNicarao/dxx-3ds/releases/tag/v2.1.0
• Attached Zip: D1X-3DS-v2.1.0.zip (includes both .cia and .3dsx)
Title ID: 0x000400000FDDEB97
(Remember to supply your legitimate descent.hog and descent.pig files in /3ds/D1/)
Enjoy the update and let me know how it feels on your systems!***
Post automatically merged:

Thanks! Just found this thread and now can't wait to try. Circa '95 - '96, Descent and Wolfenstein were my only games.
Hope you enjoy would love to get your feedback on how well it plays and any problems you run into. Enjoy!
 

Attachments

Last edited by indionicarao,
Thanks for this new update. Sorry I did not have time to test more your wonderful port due to my work and other projects. I may have more time in about 1 month and 1/2 to go deeper in it and try to find some bugs.
AFAIR, when I tested your previous build, 3D was difficult to play when inside the ship. I think it has to do with the size of the 3D window (playfield) and the inside of the ship (2D dashboard). It is too small and it is difficult for the eyes to focus. It is not a big deal to me as I prefer 1st person view but some people may not like it.
I played 3 or 4 levels without major problems.

For the D2, it would be awesome !
 
Last edited by CrashMidnick,
**Quick Update — D1X 3DS v2.1.1 is out (Performance Overhaul & 60 FPS Restored)**
Big thanks to **@CrashMidnick** for flagging the performance drop down to ~36 FPS on his 512GB SD card. That led directly to uncovering a sneaky bottleneck!

**What's new in v2.1.1:**
- **Rock-solid 60 FPS restored**: Tracked down synchronous per-frame diagnostic file logging (`lum_trace.txt` / `pgl_trace.txt`) and pixel hashing loops that were writing to the SD card on every frame. Stripping those out
immediately brought performance right back to full speed, especially on larger cards.
- **Decoupled rear-view mirror cadence**: The live 3D rear-view mirror on the bottom tactical dashboard now renders on an alternate-frame cadence (30 FPS mirror, 60 FPS flight), plus tuned depth culling. You keep full rear
situational awareness without choking GPU fillrate or CPU cycles during intense dogfights.
- **Smoother frame pacing**: Decoupled bottom-screen presentation VBlank waits so the top screen never stutters.
- **Clean builds**: Both `.cia` and `.3dsx` (plus `.smdh`) are now attached directly to the release page.
**Quick Tip for Stereoscopic 3D:**
If you ever find the 3D depth inside the retro cockpit view (`CM_FULL_COCKPIT`) a bit tight on the eyes, try switching to 1st-person / Full-Screen view (`D-Pad Down`). It gives you the full 400x240 widescreen view with
transparent HUD gauges and crosshairs, which makes the 3D depth feel completely natural and effortless to focus on. (In the upcoming v2.1.2, I'll also be adding subtle stereoscopic parallax to the 2D cockpit frame itself so it
pops out naturally!).

**Download:**
Grab **v2.1.1** from GitHub: https://github.com/iNdioNicarao/dxx-3ds/releases/tag/v2.1.1
Both `d1x-3ds-2.1.1.cia` and `d1x-3ds-2.1.1.3dsx` are available.

Enjoy the smooth flight!
 

Attachments

I'll be trying this on my O3DS through the day. I know, New 3DS is better yadda yadda, but i don't have the money to buy one, so it is what it is
 
  • Like
Reactions: indionicarao
Very cool!
Will it support the DXX Rebirth Addons (Hi-Res and Soundtracks) someday?
custom soundtrack is already supported but i dont think the hi-res textures are gonna make the cut due to the low VRAM available on the console :(
Post automatically merged:

I'll be trying this on my O3DS through the day. I know, New 3DS is better yadda yadda, but i don't have the money to buy one, so it is what it is
Would love to hear how it ran on your system. I dont have access to an original 3ds so I am not sure how well it does run or if there need to be adjustments to the input configuration for O3DS systems.
Post automatically merged:

Please do Descent 2 port with stereoscopic 3d... It will be awesome
thankfully a lot of the codebase changes apply to D2 from this port so I am well underway with D2... i just haven't had too much time for testing
 
Last edited by indionicarao,
  • Love
Reactions: LuisOleiro
Would love to hear how it ran on your system. I dont have access to an original 3ds so I am not sure how well it does run or if there need to be adjustments to the input configuration for O3DS systems.

Well, i didn't manage to make it run ^^U It boots to the first screen, main menu doesn't even render, and then it just stays there.
 
### Update: D1X 3DS v2.1.2 Released!

Hey everyone! A major new update is live for D1X 3DS (v2.1.2), bringing complete feature parity with the PC version through new context-sensitive touchscreen palettes, in-game controls reference access, and crucial stability fixes.

#### What’s New:

• Context-Adaptive Touch Decks (Bottom Screen):

• 3D Automap: Real-time depth plane clipping (DEPTH - / DEPTH +), smooth geometric zoom, camera re-centering, and one-tap exit directly from the touch screen.

• Multiplayer In-Game Comms & Join Approval: Integrated 3DS native software keyboard (swkbd) for typing live chat messages with the stylus, quick taunt macros (F9–F12), callsign reticle toggle, ping/packet-loss diagnostics, and real-time host join approval (ACCEPT (F6) / REFUSE) with automatic team balancing.

• Single-Player Jukebox Remote: Direct track forward/back, play/pause, and level theme reset for CD / Roland SC-55 soundtracks without needing physical keyboard combos.

• Observer & VCR Demo Decks: 1st/3rd-person spectator camera switching and full VCR transport controls (step frame, rewind, 2x fast-forward).

• In-Game Controls Reference: Added direct access to the Controls & Multiplayer Help cards (F1) inside the in-game Options Menu.

• App-Switching & Sleep Stability Fix: Decoupled system suspend hooks from power-off and cleanly shut down background GPU/GSP worker threads, resolving ARM11 crashes when pressing the HOME button or switching between apps.

#### Multiplayer Feedback Welcome:

While LAN / UDP connectivity and host controls are fully implemented, not all multiplayer scenarios (such as full player matches, join requests under varied network conditions, and observer mode) have been extensively field-tested across multiple consoles.

If you get a chance to host or join a match, we warmly welcome your feedback, bug reports, and suggestions so we can continue improving and polishing the network experience!

Downloads, CIAs, and full release notes are available on GitHub:

👉 D1X 3DS v2.1.2 GitHub Release https://github.com/iNdioNicarao/dxx-3ds/releases/tag/v2.1.2
 

Attachments

custom soundtrack is already supported but i dont think the hi-res textures are gonna make the cut due to the low VRAM available on the console :(
Post automatically merged:


Would love to hear how it ran on your system. I dont have access to an original 3ds so I am not sure how well it does run or if there need to be adjustments to the input configuration for O3DS systems.
Post automatically merged:


thankfully a lot of the codebase changes apply to D2 from this port so I am well underway with D2... i just haven't had too much time for testing
Great... When you release a beta, we can test it...
 

Site & Scene News

New Hot Discussed User Submitted