Releases: iNdioNicarao/DoomRPG-RE-3DS
Release list
Doom RPG RE — 3DS v1.0.6
Doom RPG RE — 3DS v1.0.6
New 3DS home-menu build (.cia) and 3DSX package of Doom RPG RE, following v1.0.5. Source-only: no game assets or audio are bundled in the repository. They are supplied on the SD card (see Install).
- Build: 2026-09-04
- Version: 1.0.6
- Title ID:
000400000FD0BB01 - License: GPLv3
- Developer Attribution: Dennis Isaac Gutierrez Zeledon
Overview
Version 1.0.6 introduces major gameplay acceleration and stereoscopic visual refinement. It adds a touchscreen Combat Turbo button on the automap control bar for lightning-fast battles and projectile animations, renders combat particles (blood, sparks, gibs, and explosions) in full stereoscopic 3D depth to eliminate eye flicker, introduces an in-game 3D Depth Multiplier setting (Low, Normal, High, Max), and adds an in-game Texture Filtering toggle (Crisp vs. Smooth) accessible directly from both the in-game Pause Menu and Video Options.
Highlights (v1.0.6)
-
Combat Turbo Button:
- Dedicated bold green
[ TURBO ]toggle button on the bottom-screen map control bar (directly adjacent to[ CTR ]). - Visual and audio feedback: double neon green border (
0xFF00FF44) and active label when enabled, dark green border when inactive, click sound feedback, and top-screen HUD notification banner ("Combat Turbo: ON"/"Combat Turbo: OFF"). - Accelerates turn-based combat: enemy turn transitions and combat delays reduced by ~3× (down to 25ms floors), projectile speeds doubled, and attack animations accelerated for snappy, responsive engagements without altering the underlying turn-based balance.
- Dedicated bold green
-
Stereoscopic 3D Combat Particles & Retinal Flicker Elimination:
- Combat particle system (blood splatters, sparks, monster gibs, and weapon explosions) now renders to both the left and right stereoscopic eye buffers.
- Right-eye particles are rendered with depth-matched parallax offset calculated from world geometry depth, fixing single-eye retinal rivalry and visual flicker while delivering stunning pop on the 3DS top screen.
-
In-Game 3D Depth Multiplier:
- New
3D Depth:configuration option added to both the in-game Pause Menu (MENU_INGAME) and main Video Options (MENU_VIDEO). - Allows players to scale hardware 3D stereoscopic separation across four levels:
Low 0.7x,Normal 1.0x(default),High 1.4x, andMax 1.8x. Seamlessly modulates the physical 3D slider value.
- New
-
Real-Time Texture Filtering Toggle (Crisp vs. Smooth):
- New
Filter:option added to both the in-game Pause Menu and Video Options. - Instantly toggles Citro3D top-screen texture filtering between
Crisp(GPU_NEAREST— authentic raw pixel art) andSmooth(GPU_LINEAR— bilinear filtered scaling) on the fly without restarting.
- New
Detailed Commit Log (v1.0.6)
247ce59—feat: add combat turbo, 3D particle depth, 3D depth multiplier, and texture filtering
Installation & Verification
- Install
DoomRPG-1.0.6.ciawith FBI (or runDoomRPG.3dsxfrom the Homebrew Menu). - Assets remain located at
sdmc:/3ds/doomrpg/. - Launch from the HOME Menu.
Binaries & Hashes
DoomRPG-1.0.6.cia- MD5:
ab6d4f99d24937c1427023f77c776661 - SHA256:
924af6c2672a90a50aee1c14caff6f7d2565a84875cb6f86ae4b761285030151
- MD5:
DoomRPG.3dsx- MD5:
fdeae4ed89eab5ba5d81072873ffe076 - SHA256:
7c1e0d709580a77f90a894e4123092222fa6a47f5d6ff4e8d4240cd7c8902ba0
- MD5:
Credits & Attribution
- Port & 3DS Enhancements: Dennis Isaac Gutierrez Zeledon
- Original Reverse Engineering: GEC Team (Erick194 and contributors)
- Doom RPG: id Software / Fountainhead Entertainment
Doom RPG RE — 3DS v1.0.5
Doom RPG RE — 3DS v1.0.5
New 3DS home-menu build (.cia) and 3DSX package of Doom RPG RE, following v1.0.4. Source-only: no game assets or audio are bundled in the repository. They are supplied on the SD card (see Install).
- Build: 2026-09-04
- Version: 1.0.5
- Title ID:
000400000FD0BB01 - License: GPLv3
- Developer Attribution: Dennis Isaac Gutierrez Zeledon
Overview
Version 1.0.5 is a comprehensive presentation, stereoscopic, and quality-of-life update. It scales all legal teasers and narrative cutscenes by 2x for full clarity, adds autostereoscopic 3D depth to the rotating title menu background, brings interactive drag-panning and zoom controls to the bottom-screen automap, default-enables authentic textured floors and ceilings, provides visual and acoustic feedback for empty inventory hotbar actions, and implements instant audio suspension when the 3DS clam-shell is closed.
Highlights (v1.0.5)
-
2x Scaled Cutscenes, Splash Screens & Teasers:
- Legal screens and splash teasers (
g.bmp) are upscaled 2x to 256x256, centered cleanly on the 400x240 top screen. - Intro story cutscene upgraded with 2x presentation: crisp text pages with adjusted prompt placement, and full 2x scaling for the animated spaceship flyby, scrolling starfields, speed lines, planet layers, and pulsing red tracking crosshairs.
- Epilogue, scrolling credits, and error screens rendered through the 2x cutscene pipeline.
- Legal screens and splash teasers (
-
Stereoscopic 3D on Rotating Title Menu:
- Pushing the 3D depth slider on the startup title screen renders the slowly rotating 3D background room in true autostereoscopic 3D.
- The DOOM RPG logo, menu items, scrollbar, hand selector cursor, and button prompts float cleanly at screen depth (zero parallax) with zero ghosting.
- Enabled full-frame 400x240 right-eye rendering (
g_stereoFullFrame) bypassing HUD row clamps.
-
Interactive Bottom-Screen Automap:
- Player Centering & Tracking: The automap smoothly tracks and centers on the player's position as you step across tiles.
- Touch Drag / Free Pan: Touch and drag with a finger or stylus to pan across explored areas of the level without moving your character.
- Zoom & Recenter Controls: Added on-screen
[+](zoom in),[-](zoom out), and[O](recenter to player) buttons. Tapping the player arrow icon also instantly snaps the camera back.
-
Full Metallic Quick-Access Bar:
- Extended the authentic status bar metallic texture across the entire 400x240 bottom screen down to the lower bezel (row 479).
- Cleaned up vertical dividers and eliminated horizontal baseline seams under hotbar text for an integrated console aesthetic.
-
Hotbar Feedback & Dimming:
- Hotbar buttons for empty items (count = 0) are visually dimmed by 50%.
- Tapping an empty slot triggers an immediate red highlight flash, a distinct negative audio cue, and a top-screen HUD status notification (e.g. "No Small Medkits!").
-
Default-Enabled Textured Floors & Ceilings:
- Authentic textured floors, ceilings, and overhead light fixtures are enabled out-of-the-box, running smoothly on 3DS hardware.
-
Synchronized 3D Motion Recovery:
- Motion-damped stereoscopic depth recovery is now tightly synchronized with grid movement completion, removing settling delay.
-
Horizontally Centered HUD Messages:
- In-game status banners ("Found Red Keycard", "Door is Locked", ammo pickups) are centered horizontally on the top screen for natural eye focus.
-
Lid-Close Audio Suspension & Power Management:
- Integrated
APT_HookTypeaudio suspension intoSDL_Video.c. Closing the 3DS clam-shell immediately mutes game audio and enters low-power sleep; reopening resumes audio and visuals gracefully.
- Integrated
Detailed Commit Log (v1.0.5)
1e5c636—feat: scale cutscenes/teasers by 2x and add stereoscopic 3D to main menu34b1cca—style(hud): center top screen status bar messages horizontally3bf6231—feat(automap): add player-centered scrolling, touch drag, zoom controls, and full metallic quick-access bara6af3ba—fix: synchronize 3D depth recovery with movement completion to remove settling lag449ba50—feat: default enable textured floors/ceilings, pause audio on lid close, and add zero-inventory hotbar feedback
Installation & Verification
- Install
DoomRPG-1.0.5.ciawith FBI (or runDoomRPG.3dsxfrom the Homebrew Menu). - Assets remain located at
sdmc:/3ds/doomrpg/. - Launch from the HOME Menu.
Binaries & Hashes
DoomRPG-1.0.5.cia- MD5:
95c7b47c296595540957f511eb0bea0c - SHA256:
a51ca06018ef19c141eb349ed18cabbb6fdf4d13bdf7c4dec8c9fff245471331
- MD5:
DoomRPG.3dsx- MD5:
d8bb3b3c9311b8b64f806e03b55d1090 - SHA256:
b157e73ec3bf990d8940c2abaa4942e9495be7cace8308976053bdd778a5774f
- MD5:
Credits & Attribution
- Port & 3DS Enhancements: Dennis Isaac Gutierrez Zeledon
- Original Reverse Engineering: GEC Team (Erick194 and contributors)
- Doom RPG: id Software / Fountainhead Entertainment
Doom RPG RE — 3DS v1.0.4
Doom RPG RE — 3DS v1.0.4
New 3DS home-menu build (.cia) and 3DSX package of Doom RPG RE, following v1.0.3. Source-only: no game assets or audio are bundled in the repository. They are supplied on the SD card (see Install).
- Build: 2026-09-03
- Version: 1.0.4
- Title ID:
000400000FD0BB01 - License: GPLv3
- Developer Attribution: Dennis Isaac Gutierrez Zeledon
Overview
Version 1.0.4 is a major audiovisual, stereoscopic, and UI polish release for Nintendo 3DS. It introduces a custom 3D parallax diorama HOME Menu banner with a 2-channel stereo audio stinger, Dynamic Motion-Damped Stereoscopy to eliminate visual disorientation during movement and turns, a pixel-perfect 1:1 square aspect ratio and proportional kerning for bottom-screen dialogue, and automatic word-wrapping that prevents text from bleeding out of boxes or behind scrollbars.
Highlights (v1.0.4)
-
3D Parallax Diorama HOME Menu Banner & Audio Stinger:
- Fully custom 3DS extended banner featuring a 2-sided rotating plaque: the front displays the high-detail Mars Base Research Facility diorama, while the back features an authentic dark brushed steel plate with corner rivets, metallic bevel, and an embossed horned demon skull in the center.
- Floating Doom RPG foreground logo with depth blending.
- Sized and framed to remain completely within the screen boundaries across all angles of rotation.
- Pixel-matched HOME Menu icon.
- Embedded 22,050 Hz 2-channel stereo CWAV audio stinger playing two shotgun blasts followed by the classic Doom grunt death scream upon application selection.
-
Dynamic Motion-Damped Stereoscopy:
- Eliminates visual fatigue and retinal shear in autostereoscopic 3D mode.
- During Camera Rotation (Turning): Dials down 3D eye separation by 70% (0.30 strength) to eliminate lateral parallax shearing.
- During Grid Movement (Stepping): Dials down eye separation by 55% (0.45 strength) to soften the step depth pop while preserving forward depth cues.
- Asymmetric Easing: Rapidly softens depth in 2–3 frames when motion begins, and smoothly blooms back to 100% full slider depth over ~150ms once the player settles onto a tile or finishes a turn.
- Stationary: 100% full, rich 3D autostereoscopy when standing still, exploring the view, in combat, or navigating menus.
-
Pixel-Perfect 1:1 Physical Aspect Ratio for Dialogue:
- Compensates for the 3DS bottom screen display driver's
$4/5$ horizontal downscale ($400 \to 320$ ) using a$5/2$ virtual$X$ mapping:$\frac{5}{2} \times \frac{4}{5} = \mathbf{2.0\text{ physical pixels wide}}$ , exactly matching the$2\times$ vertical scaling ($\mathbf{2.0\text{ physical pixels tall}}$ ). - Eliminates the tall, skinny font distortion; dialogue glyphs now render with mathematically square (
$2\times 2$ pixel) aspect ratio on the physical LCD.
- Compensates for the 3DS bottom screen display driver's
-
Proportional Kerning & Typography:
- Built a per-glyph bounding box metrics table (
s_dialogFontMetrics) for all 96 characters in the font bitmap. - Eliminates excessive empty padding around narrow glyphs (
:,!,l,1,.,,); strings likeLevel: 3,Max Health: +3, andMax Armor: +4are snug and naturally spaced.
- Built a per-glyph bounding box metrics table (
-
Automatic Word-Wrapping & Text Overflow Protection:
- Dialogue text now measures line widths against the physical container and automatically breaks at word boundaries before reaching the scrollbar threshold (max 117 font pixels).
- Guarantees text will never bleed out of the dialogue box or render behind the vertical scrollbar.
- Sized the dialogue box to
$330\text{px}$ virtual width ($264\text{px}$ physical width, perfectly centered with$28\text{px}$ automap margins on each side of the bottom screen) for comfortable breathing room. - Fixed Level Up notification header by removing menu divider padding so the title starts neatly at the left margin.
-
UI & Menu Alignment Fixes:
- Centered startup and pause menus with consistent left-justified text layout.
- Refined Nintendo 3DS Play Coins store exchange (5 Play Coins for 20 Credits) and corrected shared extdata archive ID permissions.
Detailed Commit Log (v1.0.4)
All 15 commits included in this release since v1.0.3:
e7d6120—fix(dialog): fix bottom screen font kerning, 1:1 square pixel aspect ratio, word-wrapping, and level up header1e9c33e—feat(3d): implement dynamic motion-damped stereoscopy during player movement and rotation2e46414—fix(banner): shrink background by another 15% and scale down demon skull by 25%ba6a294—feat(banner): add brushed steel back with centered horned demon skull on 40% shrunk background4909b21—fix(banner): shrink background by 40% from 8eb1a45 baseline8eb1a45—fix(banner): compile 2-channel stereo CWAV for 3DS HOME Menu audiodd9e372—feat(banner): add two shotgun blasts and grunt death scream, match home iconf760f12—fix(ui): center startup and pause menus, add level separator, and fix coins overlap53e2cbf—build: bump version to DOOMRPG-3DS v1.0.4bd1c30e—chore(clean): remove external project references and ignore plan/scratch files7156498—fix(menu): widen container to 280px, left-justify text, and update play coins exchange to 5 for 20d992004—feat(banner): implement 3D parallax diorama banner, custom audio stinger, and 3DS icon1f93615—fix(store): execute Play Coins credit exchange and preserve bottom screen HUD during menusa532027—fix(3ds): correct shared extdata archive ID and add RSF SystemSaveDataId1 for Play Coins499a61a—docs: update AI assistant acknowledgments for v1.0.3+ (Gemini Antigravity)
Install
- Install
DoomRPG-1.0.4.ciawith FBI (or runDoomRPG.3dsxfrom the Homebrew Menu). - On the SD card, copy the extracted data files into
sdmc:/3ds/doomrpg/so they sit loose in that folder. Required files include the*.bmpsprites/UI, the*.bspmaps,wtexels.bin,stexels.bin,bitshapes.bin,palettes.bin,mappings.bin, andsintable.bin. - Add audio next to the data, also under
sdmc:/3ds/doomrpg/:- SFX as numbered
.wavfiles (5042.wavthrough5138.wav). - Music as numbered
.mp3files (5039.mp3,5040.mp3,5043.mp3).
- SFX as numbered
- Launch from the HOME Menu.
sdmc:/3ds/doomrpg/saves/is created at runtime.
The game will not start unless sdmc:/3ds/doomrpg/ exists with the data files present.
Controls
| Action | Physical Button | Touch Screen |
|---|---|---|
| Move Forward / Backward | D-pad Up / Down or Circle Pad | — |
| Strafe Left / Right | L / R | — |
| Turn Left / Right | D-pad Left / Right or Circle Pad | — |
| Attack / Talk / Use / Confirm | A | On-screen dialog tap |
| Back / Dismiss Dialog / Pass Turn | B | Tap [ PASS ] on top bar |
| Next / Prev Weapon | ZR / ZL | — |
| Quick Use Items | Hotbar touch | Tap S.MED, L.MED, SOUL, BRSK, DOG |
| Passcode Entry | D-pad / A | Tap numpad digits 0–9, C, OK |
| In-Game Menu / Back | Start | Tap [ MENU ] on top bar |
| Automap | Select (persistent on bottom screen) | — |
| 3D Depth Adjustment | Physical 3D Slider | — |
Release Assets
DoomRPG-1.0.4.cia— MD54280c884f4000a119f297e0057c836ceDoomRPG.3dsx— MD51990844a69888467904506a3c66d9765
Acknowledgments
This fork was developed by Dennis Isaac Gutierrez Zeledon with the assistance of AI coding assistants across its development milestones:
-
v1.0.3 – v1.0.4 (Stereo 3D, Motion Damping, 3D Banner & Touch UI):
- Assistant: Gemini Antigravity (Google DeepMind)
- Role: Implementation of hardware autostereoscopic 3D, Citro2D/Citro3D stereo targets, dynamic motion-damped stereoscopy, 3D parallax diorama banner and stereo CWAV stinger, pixel-perfect 1:1 dialogue typography and word-wrapping, Touch HUD hotbar, passcode keypad, Play Coins exchange, and in-memory
libmadMP3 audio streaming.
-
v1.0.0 – v1.0.2 (Initial Port & CIA Packaging):
- Assistant: Hermes Agent (Nous Research)
- Model:
tencent/hy3:free - Role: Tracing the initial 3DS boot/render path, resolving early heap-exhaustion and null-surface crashes, establishing the New 3DS home-menu
.ciabuild pipeline, and initial repository setup.
License
GNU General Public License v3.0. Doom RPG game data is the property of its respective owners and is not included in this repository.
v1.0.3
Doom RPG RE — 3DS v1.0.3
New 3DS home-menu build (.cia) and 3DSX package of Doom RPG RE, following v1.0.2. Source-only: no game assets or audio are bundled in the repository. They are supplied on the SD card (see Install).
- Build: 2026-09-02
- Version: 1.0.3
- Title ID:
000400000FD0BB01 - License: GPLv3
Overview
Version 1.0.3 is a major feature and performance release that takes full advantage of Nintendo 3DS hardware. It brings hardware autostereoscopic 3D to the top screen, an interactive bottom-screen Touch HUD with an in-game quick-inventory hotbar, a touch keypad for entering terminal passcodes, Play Coins exchange, in-memory MP3 music streaming via libmad, and New 3DS 804 MHz CPU boost.
What Changed
| Area | Change |
|---|---|
| Autostereoscopic 3D | Implemented a true dual-camera stereoscopic 3D rendering pipeline using Citro2D/Citro3D GPU targets. The depth effect is hardware-gated and dynamically scaled by the physical 3DS 3D slider (smoothly drops to single-eye 2D when the slider is off). Depth separation has been carefully tuned across world geometry, particles, and weapon parallax to eliminate ghosting and eye strain. Menus and 2D splash states automatically disable 3D rendering. |
| Touch HUD & Hotbar | Added authentic metallic steel status bars to the bottom screen matching the top HUD aesthetic. Features an interactive 5-slot quick-use hotbar (S.MED, L.MED, SOUL, BRSK, DOG) with generous 80px touch targets, plus touch [ PASS ] and [ MENU ] buttons. Font kerning is compensated for the 3DS 320px downscale with transparent font blitting over metallic textures. |
| Interactive Touch Keypad | Terminal passcode doors now display an authentic on-screen touch numpad (0–9, C, OK) on the bottom screen, allowing players to enter door codes naturally using the stylus or thumb. |
| MP3 Music Streaming | Rewrote the audio streaming engine using libmad to decode MP3 tracks (5039.mp3, 5040.mp3, 5043.mp3) directly from memory. Compressed MP3 files (1.5–4.1 MB) are cached into RAM once at track start, eliminating all SD card file I/O inside the real-time SDL audio callback thread and preventing 3DS FS session deadlocks. Supports seamless looping and full volume scaling from the in-game Options menu. |
| Bottom Screen Dialogs | Dialogue sequences, terminal readouts, and character interaction popups now render cleanly on the bottom screen (scaled 2x with 280px width) over the persistent automap, keeping the top 3D screen uncluttered. |
| Navigation & Controls | The B button now functions as Back / Return in all menus and dismisses dialog boxes. Circle Pad analog inputs are fully supported alongside the D-pad. Unified hidScanInput polling to eliminate dropped inputs when holding multiple buttons. |
| 3DS Play Coins Exchange | Players can exchange Nintendo 3DS system Play Coins for game Credits ($50 credits per Play Coin) at shops and terminals. |
| New 3DS Performance | Enabled 804 MHz clock speed and L2 cache configuration via RSF for New 3DS systems. Defaulted floor and ceiling rendering to solid mode to avoid costly per-pixel textured projection, maintaining smooth framerates. |
Detailed Commit Log (v1.0.3)
All 25 commits included in this release:
fa04bfd—fix(audio): rewrite MusicStream to decode MP3 from RAM, eliminate FS thread contention, and support volume scaling74963f2—feat: decrease 3D effect 10%, remove keycard badges on bottom bar, restore full CREDITS text, support B button back in menusb5c46d3—fix(hud): make font surface transparent over metallic bars, move PASS to top bar, expand items to 80px7d7b600—fix(font): compensate bottom-screen font kerning for 320/400 downscale and match top status bar styling4675855—style(hud): style bottom screen with authentic metallic status bars and single-line font3e53c7b—feat(hud): expand bottom touch HUD to show full 5-item quick-inventory hotbar and keycards0a3cdc1—fix(stereo): disable 3D stereoscopic rendering during menus and 2D states08daef7—feat(3ds): implement touch numpad, quick-touch HUD, Play Coins exchange, and stereoscopic particle depth for v1.0.309db37c—build: bump version to DOOMRPG-3DS v1.0.386c1e30—fix(stereo): correct weapon depth parallax sign and clamp offset to 1px to eliminate double vision3df4737—fix(input, stereo): resolve missed inputs by consolidating hidScanInput, support simultaneous keys and Circle Pad, soften weapon 3D depthc8f8205—ui: widen 2x dialog box to 280px for scrollbar clearance and enable New 3DS 804MHz speedup4d8cb1c—ui: scale dialog box by 2x, ensure persistent automap rendering, and soften 3D stereo by 10%8bb01b8—ui: render dialog over automap with 2px border, clean bottom-screen lifecycle, and fix 3D blit spillover47518c6—ui: render dialog and terminal interaction popups on 3DS bottom screen1b44ea3—video: implement true dual-camera stereoscopic rendering with Citro2D eye targets4f685a8—video: align Citro2D top subtexture V coordinates to eliminate 16px vertical offsetdeb7965—video: correct Morton swizzle row order for upright display and clean up Citro2D/Citro3D/gfx on shutdowndc18105—video: fix top screen aspect ratio, orientation, and HUD clipping via unrotated subtexture UVs7463850—3DS: real hardware auto-stereoscopic 3D on top screen (slider-gated)73458a0—3DS: raw-gfx dual-screen present — upright, full, no flicker, no crash4dc0321—3DS: remove duplicate DoomCanvas_drawAutomap definition16fe6db—3DS: fix white strip at top of bottom screend236c3a—3DS: alias piDIB to framebuffer via SDL_CreateRGBSurfaceFromc1a50a5—Perf: default floor/ceiling to solid (skip per-pixel textured projection)
Install
- Install
DoomRPG-1.0.3.ciawith FBI (or runDoomRPG.3dsxfrom the Homebrew Menu). - On the SD card, copy the extracted data files into
sdmc:/3ds/doomrpg/so they sit loose in that folder. Required files include the*.bmpsprites/UI, the*.bspmaps,wtexels.bin,stexels.bin,bitshapes.bin,palettes.bin,mappings.bin, andsintable.bin. - Add audio next to the data, also under
sdmc:/3ds/doomrpg/:- SFX as numbered
.wavfiles (5042.wavthrough5138.wav). - Music as numbered
.mp3files (5039.mp3,5040.mp3,5043.mp3).
- SFX as numbered
- Launch from the HOME Menu.
sdmc:/3ds/doomrpg/saves/is created at runtime.
The game will not start unless sdmc:/3ds/doomrpg/ exists with the data files present.
Controls
| Action | Physical Button | Touch Screen |
|---|---|---|
| Move Forward / Backward | D-pad Up / Down or Circle Pad | — |
| Strafe Left / Right | L / R | — |
| Turn Left / Right | D-pad Left / Right or Circle Pad | — |
| Attack / Talk / Use / Confirm | A | On-screen dialog tap |
| Back / Dismiss Dialog / Pass Turn | B | Tap [ PASS ] on top bar |
| Next / Prev Weapon | ZR / ZL | — |
| Quick Use Items | Hotbar touch | Tap S.MED, L.MED, SOUL, BRSK, DOG |
| Passcode Entry | D-pad / A | Tap numpad digits 0–9, C, OK |
| In-Game Menu / Back | Start | Tap [ MENU ] on top bar |
| Automap | Select (persistent on bottom screen) | — |
| 3D Depth Adjustment | Physical 3D Slider | — |
Release Assets
DoomRPG-1.0.3.cia— MD5666391b114fabfcda3df4c65ffee9aedDoomRPG.3dsx— MD5711d1717c01734db86ee3f5c3d6f0a77
Notes & Compatibility
- Recommended for New 3DS (New 3DS, New 3DS XL, New 2DS XL) to take advantage of 804 MHz CPU clock speed and hardware stereo 3D.
- Autostereoscopic 3D operates on the top screen and is continuously adjusted by the 3DS hardware depth slider.
v1.0.2
Doom RPG RE — 3DS v1.0.2
New 3DS home-menu build (.cia) of Doom RPG RE, following v1.0.1. Source-only:
no game assets or audio are bundled in the repository. They are supplied on the
SD card (see Install).
- Build: 2026-08-25
- Version: 1.0.2
- Title ID:
000400000FD0BB01 - License: GPLv3
What changed
| Area | Change |
|---|---|
| HUD | Split the two on-screen bars: the status/info text bar now renders at the top of the screen, and the health/ammo HUD stays at the bottom. The top strip is always painted (metallic background) instead of only when a message is active. |
| Input / binds | Custom button bindings now store a CONTROLLER_BUTTON_* code so gameplay and controller binds decode independently. Menu navigation is always resolved from the default keymap, so a gameplay rebind can no longer break menu movement/selection. |
| Menu | Added an in-game Controls entry (rebind screen) and a Debug entry (cheats). Removed the dead Mouse/Controller sub-items and the Automap bind row. Reset Binds now restores the default keymap and saves immediately. |
| 3DS layer | SDL_GameControllerGetButtonID / SDL_JoystickGetButtonID map HID keys to CONTROLLER_BUTTON_* so bind capture detects the pressed button. |
| Logging | Asset-load failure messages now report the real path (sdmc:/3ds/doomrpg/) instead of the misleading "from zip" text. The 3DS loader reads loose files directly — there is no DoomRPG.zip and none is needed. |
Install
- Install
DoomRPG-1.0.2.ciawith FBI (or runDoomRPG.3dsxfrom the
Homebrew Menu). - On the SD card, copy the extracted data files into
sdmc:/3ds/doomrpg/so they sit loose in that folder. Required files
include the*.bmpsprites/UI, the*.bspmaps,wtexels.bin,
stexels.bin,bitshapes.bin,palettes.bin,mappings.bin, and
sintable.bin. - Add audio next to the data, also under
sdmc:/3ds/doomrpg/:- SFX as numbered
.wavfiles (001.wav,002.wav, …). - Music as numbered
.mp3files (1.mp3,2.mp3, …) by track ID.
- SFX as numbered
- Launch from the HOME Menu.
sdmc:/3ds/doomrpg/saves/is created at runtime.
The game will not start unless sdmc:/3ds/doomrpg/ exists with the data files present.
Game data (loose files extracted from the doomrpg.bar archive, numbered
.wav SFX, numbered .mp3 music) must be supplied on the SD card under
sdmc:/3ds/doomrpg/. The 3DS build reads these files directly — there is no
DoomRPG.zip and none is needed.
Controls (New 3DS)
- D-pad: turn left / right
- L / R: strafe left / right (lateral movement)
- ZL / ZR: previous / next weapon
- A: use / confirm
- B: back / pass turn
- Start: menu open / back
- Select: automap (always on bottom screen)
See docs/CHEATS.md for the Debug menu, rebinding, and Reset Binds.
Release assets
This release includes the built binaries as download assets:
DoomRPG-1.0.2.cia— MD5fb9f03645dc3097cc77481d665ad9e5dDoomRPG.3dsx— MD595337b4dbcd2e5f6cb383d7e8bc8850b
Notes
- Targets New 3DS (the larger heap and extra RAM are required for the texture
and menu surfaces). Old 3DS is not supported.
Doom RPG RE 3DS v1.0.1
Doom RPG RE — 3DS v1.0.1
New 3DS home-menu build (.cia) of Doom RPG RE, with the 3DS-specific fixes
below. Source-only: no game assets or audio are bundled in the repository.
They are supplied on the SD card (see Install).
- Build: 2026-08-24
- Title ID:
000400000FD0BB01 - License: GPLv3
What changed
Upstream built and ran under the loader it was developed against, but on real
hardware the boot path hit heap exhaustion and null-surface dereferences that
crashed or blanked the screen before gameplay. The fixes:
| Area | Fix |
|---|---|
| Boot / assets | Resolve all SD asset and save paths against sdmc:/3ds/doomrpg/ (and …/saves/). Relative/zip-backed paths fail on the 3DS FAT layer. |
| Heap (intro) | Stop per-frame SDL_Surface allocation in MenuSystem_paint. The menu surface is now a persistent MenuSystem_t member, allocated once and reused. The old per-frame alloc could not be satisfied after the intro spin, leaving SDL_CreateRGBSurface returning NULL and the menu cursor appearing frozen / the menu→game transition going blank. |
| Heap (HUD) | Stack-allocate the HUD blit rects instead of malloc per frame, so the status bar is never skipped on allocation failure. |
| Heap (textures) | Keep the texture decode buffer persistent and bound the decode loop; removes the heap fragmentation that crashed on the ARM11 after a few minutes. |
| Music | Stream music as MP3 via libmad inside SDL_mixer's music callback (3DS SDL_mixer has no MP3/MIDI decoder). SFX are loaded as WAV chunks and cached by resource ID so the intro loop does not re-read multi-MB files every iteration. |
| Pointer safety | Guard NULL image loads and retry SD reads during boot instead of dereferencing a failed allocation. |
| HUD | Guard NULL HUD surfaces and free the temp surface on early-return paths (leak fix). |
| Intro | Reset the player on intro dispose — the first-spin new-game path could reach disposeIntro without passing through Menu_startGame, leaving the player struct uninitialized and the camera spawning into a black screen. |
| Menu | Keep repainting the active menu every frame after the intro spin stops, so the Enable-Sound / Main menu cursor tracks input. |
| Input | D-pad turns; L/R are lateral movement (strafe). Weapons on ZL/ZR. Boot stack raised to 256 KB. |
No copyrighted material is included. Game data (loose files from DoomRPG.zip,
numbered .wav SFX, numbered .mp3 music) must be supplied on the SD card
under sdmc:/3ds/doomrpg/.
Build (from a checkout)
Requires Docker and the devkitARM toolchain image (built automatically):
cd tools/cia
./build_cia.sh
Output: tools/cia/DoomRPG-<version>.cia and DoomRPG.3dsx. The VERSION
file controls the CIA filename; the Title ID / version byte comes from
DoomRPG-3DS.rsf and is left at upstream's value.
Install
- Install
DoomRPG-1.0.1.ciawith FBI (or runDoomRPG.3dsxfrom the
Homebrew Menu). - On the SD card, extract the contents of
DoomRPG.zipinto
sdmc:/3ds/doomrpg/so the game data files sit loose in that folder. - Add audio next to the data, also under
sdmc:/3ds/doomrpg/:- SFX as numbered
.wavfiles (001.wav,002.wav, …). - Music as numbered
.mp3files (1.mp3,2.mp3, …) by track ID.
- SFX as numbered
- Launch from the HOME Menu.
sdmc:/3ds/doomrpg/saves/is created at runtime.
The game will not start unless sdmc:/3ds/doomrpg/ exists with the data files present.
Controls (New 3DS)
- D-pad: turn left / right
- L / R: strafe left / right (lateral movement)
- ZL / ZR: previous / next weapon
- A: use / confirm
- B: back / pass turn
- Start: menu open / back
- Select: automap (always on bottom screen)
- Touch: menu
Release assets
This release includes the built binaries as download assets:
DoomRPG-1.0.1.cia— MD5b69a586807d453f829573dcbc9d8f3beDoomRPG.3dsx— MD55e44f7b1c1a4365f7f9541c032332697
Notes
- Targets New 3DS (the larger heap and extra RAM are required for the texture
and menu surfaces). Old 3DS is not supported.