Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

DevilutionX 3DS: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 3: Line 3:
|image=DevilutionX.png
|image=DevilutionX.png
|description=Diablo build for modern operating systems.
|description=Diablo build for modern operating systems.
|author=diasurgical
|author=diasurgical, MrHuu
|lastupdated=2021/04/13
|lastupdated=2021/11/03
|type=Role playing
|type=Role playing
|version=1.2.1
|version=1.3.0
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/3dshomebrew/DevilutionX-v1.2.1.7z
|download=https://dlhb.gamebrew.org/3dshomebrews/devilutionx3ds.7z
|website=https://github.com/diasurgical/devilutionX/
|website=https://github.com/diasurgical/devilutionX
|source=https://github.com/diasurgical/devilutionX/
|source=https://github.com/diasurgical/devilutionX
}}
}}
<youtube>ItA3TMiqXu8</youtube>
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 then you can buy Diablo from [https://www.gog.com/game/diablo GoG.com].
 
Create devilutionx folder on your SD card (sdmc:/3ds/devilutionx/).
* For the full game, copy diapdat.mpq to the devilutionx subfolder.
* For the Diablo Hellfire expansion, you will also need hellfire.mpq, hfmonk.mpq, hfmusic.mpq, hfvoice.mpq.
 
Place the .cia file on your SD card, then use a title manager such as [[FBI_3DS|FBI]] to install devilutionx.cia.
 
==User guide==
DevilutionX for 3DS [https://github.com/diasurgical/devilutionX/blob/master/docs/manual/platforms/3ds.md 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 [https://github.com/diasurgical/devilutionX/blob/master/docs/manual/platforms/3ds.md 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 [https://github.com/diasurgical/devilutionx-assets/releases/download/v1/fonts.mpq 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).


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


https://dlhb.gamebrew.org/3dshomebrew/IgdQsJC.png
[Graphics]
https://dlhb.gamebrew.org/3dshomebrew/IsJ4KCc.png
Width=640
Height=480


==Notes:==
* This still has a lot of untested / unimplemented features.
* Installation instructions:
* Get full game, either CD or GOG release.
* Create a 'DevilutionX' folder to your SD, here: 'sdmc:/3ds/DevilutionX/'
* From the full game, copy 'DIABDAT.MPQ', to: 'sdmc:/3ds/DevilutionX/'
* Install and run .cia


'''Info'''
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.
* .cia only. Expect bugs!
* Slow on old3DS


===Build instructions:===
Because 3DS uses SDL1, many of the graphics settings do not apply. The following represents the full list of applicable settings.
From inside the build folder:
* Width.
* Height.
* Fit to Screen.
* Blended Transparency.
* Gamma Correction.
* Color Cycling.
* FPS Limiter.


* cmake .. -DBINARY_RELEASE=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/ctr/devkitarm-libctru.cmake
==Controls==
* make
'''Buttons:'''


===Installation instructions:===
Circle-Pad or D-Pad - Move hero
* Get full game, either CD or GOG release.
* Download CIA: https://github.com/MrHuu/devilutionX-3ds/releases
* Create a 'DevilutionX' folder to your SD, here: 'sdmc:/3ds/DevilutionX/'
* From the full game, copy 'DIABDAT.MPQ', to: 'sdmc:/3ds/DevilutionX/'
* Install and run .cia
* ???
* Profit!
* OpenDingux / RetroFW
* CMake arguments
* General


* The default build type is Debug. This can be changed with -DBINARY_RELEASE=ON. Independently of this, the debug mode of the Diablo engine is always enabled by default. It can be disabled with -DDEBUG=OFF. Finally, in debug builds the address sanitizer is enabled by default. This can be disabled with -DASAN=OFF. You can also generate 32bit builds on 64bit platforms by setting -DCMAKE_TOOLCHAIN_FILE=../CMake/32bit.cmake (remember to use the linux32 command if on Linux). Network support can be disabled using -DNONET=ON, this also removes the need for the ASIO and Sodium dependencies. You can compile the shareware version with -DSPAWN=ON this will allow you to try the game using spawn.mpq from the original shareware which can still be downloaded for free.
A - Attack nearby enemies, Talk to townspeople and merchants, Pickup/place items (inventory), OK (main menu)


===mingw32===
B - Select spell, Back while in menus
Use -DCROSS_PREFIX=/path/to/prefix if the i686-w64-mingw32 directory is not in /usr.


===Use SDL v1 instead of SDL v2===
X - Pickup items, Open nearby chests and doors, Use item in the inventory
Pass -DUSE_SDL1=ON to build with SDL v1 instead of v2. Note that some features are not yet supported in SDL v1, notably upscaling, and fullscreen.


===Multiplayer===
Y - Cast spell, Delete character while in main menu
* TCP/IP only requires the host to expose port 6112
* UDP/IP requires that all players expose port 6112
* All games are encrypted and password protected.


==Controller support==
L - Use health item from belt


DevilutionX supports gamepad controls.
R - Use mana potion from belt


Default controller mappings (A/B/X/Y as in Nintendo layout, so the rightmost button is attack):
Start+Up/Select - Game menu


* Left analog / DPad: move hero
Start+Down - Toggle automap
* Right analog: simulate mouse
* A: attack nearby enemies, talk to towns people and merchants, pickup & place items in the inventory, OK while in main menu
* B: Select spell, cancel while in main menu
* X: pickup gold, potions & equipment from ground, open chests and doors that are nearby, use item when in inventory (useful to read books etc.)
* Y: cast spell, go to previous screen when talking to people and in shops, delete character while in main menu
* R1: inventory
* L1: character sheet
* R2: use mana potion from belt
* L2: use health item from belt
* Left analog click: toggle automap
* Right analog click: left mouse click
* Select: quest log
* Start: game Menu, skip intro


For now, they can be re-mapped by changing SourceX/controls or by setting the SDL_GAMECONTROLLERCONFIG environment variable (see SDL_GameControllerDB).
Start+Left/L or ZL - Character sheet


==Changelogs==
Start+Right/R or ZR - Inventory


'''1.2.1'''
Start+X - Toggle zoom


=== Bugfixes ===
Select+D-Pad - Move automap, Simulate mouse


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


* Gharbad not having to go out of vision before progressing his quest
C-Stick - Move automap, Simulate mouse
* Diablo: Items with negative AC morphing in multiplayer
* Diablo: Griswold and Wirt selling unusually expensive items
* Diablo: Gold not going directly to inventory
* Hellfire: Some monsters having lower than intended HP
* Hellfire: Auric Amulet not taking effect in most scenarios


==== Graphics / Audio ====
Select+ZL or Start+Y - Quest log


* Windows: Glitchy audio
Select+ZR or Start+B - Spell book


==== Controls ====
'''Touchscreen:'''


* Vita: Inability to edit hero name on the creation screen
Single drag - Move the mouse pointer (pointer jumps to finger)


==== Stability / Performance / System ====
Single short tap - Left mouse click


* Quest panel crashing the game for some quests
==Screenshots==
* Windows: Some systems getting a sensor permission error
https://dlhb.gamebrew.org/3dshomebrews/devilutionx3ds3.png
* Windows: Stability issues and item morphing in Hellfire
https://dlhb.gamebrew.org/3dshomebrews/devilutionx3ds4.png


=== Bugfixes for original Hellfire bugs ===
https://dlhb.gamebrew.org/3dshomebrews/devilutionx3ds5.png
https://dlhb.gamebrew.org/3dshomebrews/devilutionx3ds6.png


==== Gameplay ====
==Media==
'''DevilutionX (Diablo 1) for the RG-350 handheld''' ([https://www.youtube.com/watch?v=ItA3TMiqXu8 Gleb Mazovetskiy]) <br>
<youtube>ItA3TMiqXu8</youtube>


* Rage/Search/Lightningwall not factoring in the hero level for the first player
==Known issues==
* Sparkling Shrine dealing an incorrect amount of damage
Polish dub produces static sounds.
* Items with negative AC morphing in multiplayer


'''v1.0.1'''
==Credits==
===Notes:===
* galaxyhaxz - For reverse-engineering Diablo, and creating Devilution.
* Following upstream version, even with 1.0.1 now.
* AJenbo, qndel & glebm - For maintaining, improving and supporting Devilution.
* Suspend / Sleep / Shutdown still don't work as expected.
* All others involved with the Devilution/DevilutionX projects.
* Wintermute & fincs - For creating and maintaining devkitPro/devkitARM.
* All other involved with devkitPro and 3DS libraries.


===Installation instructions:===
==External links==
* Get full game, either CD or GOG release.
* GitHub - https://github.com/diasurgical/devilutionX
* Create a 'DevilutionX' folder to your SD, here: 'sdmc:/3ds/DevilutionX/'
* GitHub (former) - https://github.com/MrHuu/devilutionX-3ds
* From the full game, copy 'DIABDAT.MPQ', to: 'sdmc:/3ds/DevilutionX/'
* GBAtemp - https://gbatemp.net/threads/release-devilutionx-for-3ds.552299
* Install and run .cia


===Build instructions:===
[[Category:3DS homebrew games]]
* From inside: 'devilutionx\build', run:
[[Category:Homebrew role playing games on 3DS]]
* cmake .. -DNIGHTLY_BUILD=ON -DCMAKE_TOOLCHAIN_FILE=../CMake/ctr/devkitarm-libctru.cmake && make

Revision as of 07:15, 26 December 2021

DevilutionX
File:DevilutionX.png
General
Authordiasurgical, MrHuu
TypeRole playing
Version1.3.0
LicenseMixed
Last Updated2021/11/03
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 then you can buy Diablo from GoG.com.

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

  • For the full game, copy diapdat.mpq to the devilutionx subfolder.
  • For the Diablo Hellfire expansion, you will also need hellfire.mpq, hfmonk.mpq, hfmusic.mpq, hfvoice.mpq.

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

Buttons:

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.png devilutionx3ds4.png

devilutionx3ds5.png devilutionx3ds6.png

Media

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

Known issues

Polish dub produces static sounds.

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: