DevilutionX 3DS

From GameBrew
DevilutionX
Devilutionx3ds2.png
General
Authordiasurgical
TypeRole playing
Version1.5.2
LicenseMixed
Last Updated2024/02/05
Links
Download
Website
Source

DevilutionX is a source port of Diablo and Hellfire that strives to make it simple to run the game while providing engine improvements, bugfixes, and some optional quality of life features.

Installation

Note: You'll need access to the data from the original game. If you don't have an original CD you can buy Diablo from GoG.com, or use the shareware version.

Create a folder named devilutionx on your SD card (sdmc:/3ds/devilutionx/).

  • For the full game, copy diapdat.mpq to the devilutionx subfolder (for the shareware version, use spawn.mpq instead).
  • For the Diablo Hellfire expansion, you will also need hellfire.mpq, hfmonk.mpq, hfmusic.mpq, hfvoice.mpq.
  • Chinese, Korean, and Japanese users will also need fonts.mpq or the text will be missing (N3DS only, see below).

Place the .cia file on your SD card, then use a title manager such as FBI to install devilutionx.cia.

User guide

DevilutionX for 3DS user manual.

Multiplayer

The 3DS currently supports cross-platform Multiplayer in TCP mode. To play, you will need to enable Wi-Fi on the console and set up a network connection in System Settings. For more general information about Multiplayer and how to set up your network for TCP games, refer to the DevilutionX Multiplayer guide.

When playing Multiplayer, guests will experience better performance than hosts. When playing cross-platform, it is recommended to host your game session on another platform with more capable hardware.

Translations

The 3DS version of the game will attempt to detect the appropriate language based on your 3DS console's language setting. Chinese, Korean, and Japanese users will need to download fonts.mpq or the text will be missing.

It is currently not recommended to use the Chinese, Korean, or Japanese translations on old 3DS models. The game will load additional symbols into system memory as needed while you continue to play the game. There is not enough memory in the old 3DS models to hold all the symbols in memory. It is therefore possible to run out of memory on the console and crash the game simply by using these translations.

To change the language used by the game, you will need to modify diablo.ini. The config folder path for 3DS is the same as the data folder for the MPQs (/3ds/devilutionx/ on your SD card).

Performance tips

New 3DS models have significantly improved hardware compared to old models. To improve the performance of the game on old 3DS models, you will want to modify diablo.ini. The config folder path for 3DS is the same as the data folder for the MPQs (/3ds/devilutionx/ on your SD card).

In particular, you will see a significant performance improvement if you set the game to Diablo's original resolution of 640x480.

[Graphics]
Width=640
Height=480

After making this change, if you would like the game to stretch to fit the full area of the top screen, use Fit to Screen=1. If instead you do not like the display to be stretched, use Fit to Screen=0.

Because 3DS uses SDL1, many of the graphics settings do not apply. The following represents the full list of applicable settings.

  • Width.
  • Height.
  • Fit to Screen.
  • Blended Transparency.
  • Gamma Correction.
  • Color Cycling.
  • FPS Limiter.

Controls

Keypad:

Circle-Pad or D-Pad - Move hero

A - Attack nearby enemies, Talk to townspeople and merchants, Pickup/place items (inventory), OK (main menu)

B - Select spell, Back while in menus

X - Pickup items, Open nearby chests and doors, Use item in the inventory

Y - Cast spell, Delete character while in main menu

L - Use health item from belt

R - Use mana potion from belt

Start+Up/Select - Game menu

Start+Down - Toggle automap

Start+Left/L or ZL - Character sheet

Start+Right/R or ZR - Inventory

Start+X - Toggle zoom

Select+D-Pad - Move automap, Simulate mouse

Select+A/B/X/Y - Spell hotkeys

C-Stick - Move automap, Simulate mouse

Select+ZL or Start+Y - Quest log

Select+ZR or Start+B - Spell book

Touchscreen:

Single drag - Move the mouse pointer (pointer jumps to finger)

Single short tap - Left mouse click

Screenshots

devilutionx3ds3.pngdevilutionx3ds4.png

devilutionx3ds5.pngdevilutionx3ds6.png

Media

DevilutionX (Diablo 1) for the RG-350 handheld (Gleb Mazovetskiy)

Known issues

Polish dub produces static sounds.

Changelog

v1.5.2

  • Multiplayer
    • Unable to join game due to invalid player data
  • Translations
    • Improve rendering of Chinese/Japanese/Korean texts
  • Gameplay
    • Hellfire items not saving their identified state
  • Stability / Performance / System
    • Stash corrupting when converting a hero between Diablo and Hellfire
    • Amiga: Incorrect rendering of things behind transparent elements
    • Android: Game locking up when switching sound output
    • Fedora: Unable to locate BZIP2
    • Manjaro: Unable to locate libsodium
    • Xbox: Game crashing unexpectedly
    • Xbox: Improve performance

v1.5.1

  • Features
    • Multiplayer
      • Validate player stats
      • Update the pvp arenas
      • Rename "Loopback" to "Offline"
    • Stability / Performance / System
      • Move hp/mana display and item graphics to gameplay options
      • Validate properties when reloading items
      • Demomode: Improve replay stability
      • Update Discord link
      • Display save game confirmation
      • Reduce ram usage
    • Translations
      • Update Simplified Chinese translation
      • Update French translation
      • Update German translation
      • Update Greek translation
      • Update Japanese translation
      • Update Korean translation
      • Update Portuguese translation
      • Update Spanish translation
      • Update Swedish translation
      • Update Ukrainian translation
  • Bugfixes
    • Gameplay
      • Being able to enter Lazarus' chamber before opening the portal
      • Book requirements not updating
      • Some monsters not walking
      • Missiles not traveling the full distance at some angles
      • Diablo: Incorrect level 4 layout when the Magic Banner quest is active
      • Halls of the Blind not being completed by picking up the amulet
      • Shareware: Bucklers not dropping
      • Player animation stuttering
    • Multiplayer
      • Potions dropped by Divine shrines not being synced
    • Platforms
      • Linux: Add sdl-image dependency for the deb package
      • Linux: Include discord dependency
      • Xbox One: Missing assets
    • Graphics / Audio
      • Incorrect cursor rendering
      • Incorrect outlines at the right edge of the screen
      • NPC speech continuing after starting a new game
      • Correct various font rendering issues
      • Hide the hit indicator when only one player is in the game
      • Issues with flashing lights
      • Floating number still appearing after death
      • Misaligned automap
    • Controls
      • Inconsistencies with placing items in to the stash
      • Gamepad: Being stuck in dialogs
      • Gamepad: Unable to use some scrolls directly
    • Stability / Performance / System
      • Unable to playback new demo files
      • Various crashes
  • Bugfixes for original Diablo bugs
    • Gameplay
      • Durability overflowing when reloading items
      • Teleporting onto an occupied tile
      • Right-click during dialogs casts spells
    • Graphics / Audio
      • Cursor jitter when interacting with the inventory
      • Broken lava tiles
    • Controls
      • Inconsistencies with placing items in to the inventory
  • Bugfixes for original Hellfire bugs
    • Gameplay
      • Warping onto a solid tile
    • Known issues
      • 1.5.0 save games on level 4 with Snot Spill will need to progress the game before updating because of a bug in that version

v1.5.0

  • Features
    • Gameplay
      • Floating damage numbers
      • Option to auto-pick up oils
      • Quest items now drop based on difficulty
    • Multiplayer
      • All quests can now be played, enabled from settings menu
      • Add chat commands, use /help for options
      • Add PvP arenas that can be accessed via /arena #
      • Inspect other players' items using /inspect <name>
      • Hellfire: Disabled The Cornerstone of the World
      • Draw hostile players' names in red in the chat panel
    • Platforms
      • Added support for the original Xbox
      • Added (experimental) support for RG99
      • Added support for Android TV
      • Support demo playback on SDL1 versions
      • Android: Support loading data from external storage
      • Android: Do not speed up game after suspending if playing alone
      • Provide virtual resolutions for systems with only one native resolution
      • Windows: Digitally signed executable
    • Graphics / Audio
      • Option to show item graphics in stores
      • Added map in town
      • Add widescreen load screens (thanks to @Chance4us)
      • Show cast animation in town
      • Various text rendering improvements
      • Use decimal separators for gold and XP
      • Monsters end their invisibility on death
      • Durability icon gradually changing to red
      • Make the ground color of small rejuvenation potions distinct
      • Indicate on which difficulty a hero has defeated Diablo
      • Only display resolution height when FitToScreen is enabled
      • More fluid lighting updates when moving
      • Improve the monster HP bar for some edge cases
      • Provide sound cue when gold is auto-placed into the open inventory
      • Color inventory slot based on item quality
      • Add setting for choosing a different audio resampler
      • Support for recoloring heroes using trn-files
    • Controls
      • Adjust the info panel descriptions based on the input device
      • Gamepad controls can now be mapped
      • New options for keyboard mapping
      • gamepad/touch: Improve menu navigation
      • gamepad: Autodetect button layout
      • Support mouse back button in menus
      • Do not target monster when casting Heal Other and Resurrect
      • Improve logic for belt auto-refill
    • Translations
      • Update French translation
      • Update Italian translation
      • Update Japanese translation
      • Update Polish translation
      • Update Spanish translation
      • Update Ukrainian translation
      • Synchronize names of existing items with the current game language
      • Xbox One/Series: Include translations
    • Stability / Performance / System
      • Create submenus for setting groups
      • Reduce RAM usage
      • Performance improvement
      • Frame skipping on low end systems
      • Add --lang for specifying the language
      • Setting for picking audio device
      • Date based screenshot names
  • Bugfixes
    • Gameplay
      • Attack speed not always being accurate for specific combinations of effects and actions
      • Telekinesis respects the Disable Crippling Shrines setting
      • Don't consume mana when double casting Mana Shield
      • Resolve a few bugs and edge cases with the stash
      • Hellfire: Books from Adria's shop morphing
      • Petrified monsters shifting position when hit after loading a save game
    • Multiplayer
      • Items held by cursor lost due to lag indicator
      • Items lost due to various desync issues
      • Fix multiple desync issues
      • Don't show hostile players on the map
      • Player animations sometimes not being in sync
      • Better handling of latency
    • Platforms
      • Windows: Fix ZeroTier always failing for Unicode usernames
      • Vita: Items lost when tapping outside the inventory
      • Fix gold withdrawal on SDL1 versions
      • Translation support on BE systems
      • macOS/iOS translate system texts
    • Graphics / Audio
      • Top of screen not being rendered at some resolutions
      • Correct alignment of lightning and inferno
      • Make item labels take UI into consideration
      • Adria's "you have nothing to recharge" being misalignment on an empty list
      • Monsters sometimes not being rendered
      • Lighting missing for some areas after loading a saved game
      • Hellfire quests being removed from the quest log when completed
    • Controls
      • touch: Missing buttons on low end devices
      • Hero sometimes not willing to drop an item even when there is still room on the ground
    • Stability / Performance / System
      • Allow using the built-in screenshot function during text input
      • Various crashes
      • A rare freeze when loading hell levels
      • Various issues with cursor rendering
      • Some additional validation of items when converting saves from Hellfire to Diablo
  • Bugfixes for original Diablo bugs
    • Gameplay
      • Several issues that would cause missiles to miss when they shoudn't
      • Some wall tiles not blocking missiles and vision
      • The player can spawn in an incorrect location on some levels
      • Town portal not always returning to the correct quest level
      • Missing the extra stats at level 50
      • Guardian not calculating its damage correctly
      • Items lost when triggering a portal while picking them up
      • Diablo not giving the intended XP on Hell difficulty
      • Fireball/Elemental not doing damage when monster is not in line of sight
      • Lightning spell being able to pass through some walls
      • Prevent double casting of spells
      • Unable to pick Golem spawn location when right-clicking the scroll
      • Low quality items on quests after using a town portal
      • Monsters on Nightmare and Hell having too little HP
      • Monsters being immune to non-player missiles
      • Stairs up to level 6 not working sometimes
      • The Deadly Hunter bow not dealing the correct damage
      • Poisoned Water not appearing in the quest log if discovered before talking to Pepin
      • Casting spells during level transition will target the old position
      • Spell remaining unavailable after using a stone shrine until reequipping the staff
      • Unique monster light being left behind when they are removed
      • Fast and faster hit recovery stacking
      • Camera shaking when loading a save game after Diablo's death
      • Correct calculation for max chages lost with when using the recharge skill
      • Not getting XP after damaging a monster if it dies from a trap
      • Fire Arrows causing monsters to stop healing
    • Multiplayer
      • Trapped doors rearming themselves when returning to a level
      • Resolve some sources of dsync
    • Graphics / Audio
      • Add scrollbar to help window
      • Show portal animation in town
      • Fix inconsistent lighting on quest levels
      • Petrified monsters turning to face the attacker
      • Display correct Armor Class in Char Panel
      • Minor rendering bugs in UI panels
      • Center 2x2 items that go in 2x3 slots
      • Broken corners on some cathedral levels
      • Light smearing when walking in certain directions
      • Unique monsters light not always following the monster
      • Monster sliding after having been stone cursed
      • Player moonwalking when talking to monsters
      • Tavern Sign playing the wrong sound when dropped on the floor
    • Controls
      • Help panel staying open while talking to NPCs
    • Stability / Performance / System
      • Minor stability issues
      • Optic Amulet and Arkaine's Valor sometimes being misaligned
  • Bugfixes for original Hellfire bugs
    • Gameplay
      • Prevent oil of death damage wrap around
      • Reflected damage sometimes being too low
    • Multiplayer
      • Desync in Nest when cow quest is enabled
      • Gillian saying the grave quest start line multiple times
      • Being unable to pick up quest items if you didn't start the game
      • Quest going out of sync
    • Graphics / Audio
      • Buggy lighting in Nest and Crypt
      • Description of jester's item saying 500% instead of 600% damage
      • Typos in subtitles

v1.4.1

Features:

  • Graphics / Audio:
    • Play gold sound effect when depositing in stash.
  • Controls:
    • Add setting for showing item labels.
    • Add setting for zoom by default.
  • Translations:
    • Update Chinese Translation.
    • Update French Translation.
    • Update Japanese Translation.
    • Update Polish Translation.
    • Update Russian Translation.
    • Update Ukrainian Translation.

Bugfixes:

  • Gameplay:
    • Correct behavior for elemental damage on weapons.
    • Fallen retreat in the wrong direction.
    • Show correct requirements for books in stash.
  • Multiplayer:
    • Issues with joining multiplayer games.
    • Refreshing store inventory on new games.
  • Platforms:
    • 3DS: correct C-stick axis mapping.
    • 3DS: Package info.
    • iOS: Compatibility with Sideloadly.
    • iOS/macOS/iPadOS: Show translated error messages.
    • OpenDingux: Fix game not starting on some devices.
    • PS4: Crashing on startup with no config file.
  • Graphics / Audio:
    • Fix wide screen scenes missing on some platforms.
    • Minor graphical issues.
    • Misaligned player animation.
  • Controls:
    • Quick cast interrupting the current action.
    • Touch: Action buttons sometimes showing the wrong icon.
    • Touch/Gamepad: Correct usage description for some spells.
    • Touch/Gamepad: Fix targeting berserked monsters.
  • Stability / Performance / System:
    • Improve general game stability.
    • Incorrect handling of player names.
    • Names on ears not being correct in some translations.

Bugfixes for original Diablo bugs:

  • Gameplay:
    • Fallen not seeing each other in a northern direction.
    • Lazarus level resetting when using town portal.
    • Shrines effects not being random.
  • Multiplayer:
    • Solve more sources of desync.
  • Controls:
    • Make spell feedback consistent in town and dungeon.

Bugfixes for original Hellfire bugs:

  • Gameplay:
    • Monsters not reacting to being attacked by berserked monster.

Known issues:

  • Stability / Performance / System:
    • Linux ARM builds have not arrived yet.

Release notes.

Credits

  • galaxyhaxz - For reverse-engineering Diablo, and creating Devilution.
  • AJenbo, qndel & glebm - For maintaining, improving and supporting Devilution.
  • All others involved with the Devilution/DevilutionX projects.
  • Wintermute & fincs - For creating and maintaining devkitPro/devkitARM.
  • All other involved with devkitPro and 3DS libraries.

External links

Advertising: