Diablo-NX - Nintendo Switch Port of DevilutionX (Diablo)

Nintendo Switch Port of DevilutionX (Diablo)

68747470733a2f2f692e696d6775722e636f6d2f444b56423139382e706e67


Diablo build for modern operating systems. This is the Nintendo Switch Port. It's still in Beta as i continue to map the controls over from the PC version

How To Play:
  • Extract contents of diablo-nx.zip release into SDMC:\switch\diablo-nx
  • Copy DIABDAT.MPQ from original Diablo game disc or GOG version.
  • Launch diablo-nx.nro
  • Note: Hold R on any installed game and launch it. Do not use photo-album to launch. If you use photo-album, the homebrew only has very little memory available, and the touch keyboard doesn't work. This is true for all homebrew, not just Diablo-NX.
  • Enjoy :)
Joycon Controls
  • Left Analog : Move Hero
  • Right Analog : Simulate Mouse
  • B : Attack nearby enemies, talk to towns people and merchants. Pickup & Drop items in inventory. OK in Menu
  • Y : Pickup gold, potions & equipment from ground, open chests and doors that are nearby. Use item when in inventory (read books etc.).
  • X : Cast Spell
  • A : Select Spell, Cancel in Menu
  • R : Inventory
  • L : Character
  • ZR : Drink Mana Potion
  • ZL : Drink Heal Potion
  • Left Analog Click : Quest Log
  • Right Analog Click : Left mouse click
  • Minus : Automap
  • Plus : Game Menu, Skip Intro
Touch Controls
  • Single finger drag : move the mouse pointer (pointer jumps to finger)
  • Single short tap : left mouse click
  • Single short tap while holding a second finger down : right mouse click
  • Dual finger drag : drag'n'drop (left mouse button is held down)
  • Three finger drag : drag'n'drop (right mouse button is held down)
Notes
There are lots of bugs. Check issues on the code repo.

Download (Latest Release) : https://github.com/lantus/devilution-nx/releases/tag/0.95
Source Code : https://github.com/lantus/devilution-nx
 
Last edited by MVG,

jurai

Well-Known Member
Member
Joined
Dec 23, 2005
Messages
441
Trophies
1
XP
1,280
Country

It seems to be working so far, the softkeyboard however is not, if I try to make a new character the game pauses for a second (I assume its trying to invoke the keyboard) then just leaves me at the in game text entry prompt with no way to exit and no way to invoke the keyboard that I can discern (I'm in handheld mode if that matters)
 
Last edited by jurai,

MVG

Well-Known Member
OP
Newcomer
Joined
May 17, 2018
Messages
74
Trophies
0
Age
50
XP
1,016
Country
United States
It seems to be working so far, the softkeyboard however is not, if I try to make a new character the game pauses for a second (I assume its trying to invoke the keyboard) then just leaves me at the in game text entry prompt with no way to exit and no way to invoke the keyboard that I can discern (I'm in handheld mode if that matters)

confirmed its happening to me too on a 5.0.2 switch with Atmosphere. It's a showstopper . Maybe @rsn8887 can take a look
 

rsn8887

Well-Known Member
Member
Joined
Oct 8, 2015
Messages
956
Trophies
1
Age
46
Website
www.patreon.com
XP
3,616
Country
United States
@jurai @MVG The touch keyboard works, but it cannot run if you launch Diablo as applet. Please always start Diablo (and all homebrew for that matter) by holding R when launching a game, to launch as app, not applet.

NEVER use ALBUM to start homebrew. Always use the "Hold R on Game" technique. If you use ALBUM, you give the homebrew only ~200 MB of memory or less, I forgot the exact number. Instead of several gigabytes (!) that you get by holding R over a game.

The virtual keyboard needs the extra mem.

People always think the keyboard doesn't work in all homebrew not just Diablo. But they use ALBUM that is the only reason. Note: There is one single homebrew, some cheating app, that uses a terrible hack to make the keyboard work with ALBUM by moving the heap around. But it can lead to crashes and was officially not allowed by libnx maintainers.

--------------------- MERGED ---------------------------

More improvements (PR to @MVG made):
  • implement direct touch controls (tap to click etc.)
  • improve event code so it doesn't call PressKEY etc directly anymore, but generates proper DVL events. Will help in upstreaming later.
  • change mapping to more closely reflect PS1 mapping (A for spell selection, L/R for char/inv left/right panels). On PS1 the same button (O) was also used for spell select.
  • Map B button to cancel in menu, A button is OK in menu
  • Support physical USB keyboards
  • Make it clear in the README.MD to hold R over an installed game to launch Diablo, not album (otherwise touch keyboard doesn't work)
Preview version for testing:

https://www.patreon.com/posts/28311336
 
Last edited by rsn8887,

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,246
Trophies
1
Age
44
XP
6,271
Country
Chile
It could be more appropriated to map A to select and B to cancel in-game menu too, it’s weird that A is to select in title menu, but in-game menu B is used to select. Basically fit a Nintendo button scheme.

It would be A to attack, B to cast spell, Y to pick/interact. In order to keep A to select, B to cancel in-game menu too.
 
Last edited by cucholix,

rsn8887

Well-Known Member
Member
Joined
Oct 8, 2015
Messages
956
Trophies
1
Age
46
Website
www.patreon.com
XP
3,616
Country
United States
Well in-game the idea is to closely map the PS1 controls.

I really think it is ok the way it is now with my latest PR. The Switch OS uses A for OK and B for cancel in menus etc. So in the main menu, I think it is good to use that because every other app and dialog on Switch uses A for OK.

But in games it is often different I think.

@MVG : Awesome, looking forward to the next release!!! I think it is coming along nicely. A week ago I didn't even know there was an open source Diablo :)
 
Last edited by rsn8887,

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,246
Trophies
1
Age
44
XP
6,271
Country
Chile
Oh well, it’s not a deal breaker lol, Dark Souls did the same thing, it’s confusing at first when you are used to Nintendo’s select/cancel A/B scheme.
 
Last edited by cucholix,

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,785
Trophies
1
Age
44
XP
6,510
Country
Germany
@jurai @MVG The touch keyboard works, but it cannot run if you launch Diablo as applet. Please always start Diablo (and all homebrew for that matter) by holding R when launching a game, to launch as app, not applet.

NEVER use ALBUM to start homebrew. Always use the "Hold R on Game" technique. If you use ALBUM, you give the homebrew only ~200 MB of memory or less, I forgot the exact number. Instead of several gigabytes (!) that you get by holding R over a game.

The virtual keyboard needs the extra mem.

People always think the keyboard doesn't work in all homebrew not just Diablo. But they use ALBUM that is the only reason. Note: There is one single homebrew, some cheating app, that uses a terrible hack to make the keyboard work with ALBUM by moving the heap around. But it can lead to crashes and was officially not allowed by libnx maintainers.

--------------------- MERGED ---------------------------

More improvements (PR to @MVG made):
  • implement direct touch controls (tap to click etc.)
  • improve event code so it doesn't call PressKEY etc directly anymore, but generates proper DVL events. Will help in upstreaming later.
  • change mapping to more closely reflect PS1 mapping (A for spell selection, L/R for char/inv left/right panels). On PS1 the same button (O) was also used for spell select.
  • Map B button to cancel in menu, A button is OK in menu
  • Support physical USB keyboards
  • Make it clear in the README.MD to hold R over an installed game to launch Diablo, not album (otherwise touch keyboard doesn't work)
Preview version for testing:

https://www.patreon.com/posts/28311336
You and your PR for other homebrews are so cool, especially your RetroArch contributions.

Apart from the cooperation between CTCaer, m4xw, SciresM and some other devs this is the idea of open source software. Pretty cool.

Could you consider having a quick look at Blobby Volley 2 and figure out why it won't start on 8.x+ FW any longer? It worked on 7.x and below.
(and if you really have too much free time could you make the network/internet modes work by any chance?)

The dev is a real life friend of mine so if you make a PR and he doesn't see it, I can (and will) remind him to do accept it.
However I don't think he would be mad (neither would I) if you just forked it and compile/release it on your own. =)
 

SeongGino

The Average One
Member
Joined
May 20, 2015
Messages
939
Trophies
0
Age
25
Location
Jersey, Jersey
Website
www.twitter.com
XP
1,932
Country
United States
  • change mapping to more closely reflect PS1 mapping (A for spell selection, L/R for char/inv left/right panels). On PS1 the same button (O) was also used for spell select.
  • Map B button to cancel in menu, A button is OK in menu

Not going to lie, these two changes kind of contradict one another. If you're going to stick to PlayStation mappings, it'd be better to keep that consistent throughout all the menus, both system and in-game.
Either that, or update the controls for inventory/spell/stat selection/pause, so A and B also act as select/cancel respectively.
Even while writing this, I accidentally saved when I didn't intend do, and instead meant to go back because I thought the mapping for the frontend and the pause menus were the same (the text uses the same friggin font even). It didn't cause issue in my current game, but you really should consider this a bit more.

Dark Souls and SAO:HR at least were consistent in their bass-ackwards button configuration. No offense.
 
Last edited by SeongGino,
  • Like
Reactions: cucholix

jurai

Well-Known Member
Member
Joined
Dec 23, 2005
Messages
441
Trophies
1
XP
1,280
Country
It could be more appropriated to map A to select and B to cancel in-game menu too, it’s weird that A is to select in title menu, but in-game menu B is used to select. Basically fit a Nintendo button scheme.

It would be A to attack, B to cast spell, Y to pick/interact. In order to keep A to select, B to cancel in-game menu too.

tbh I agree with this, I constantly find myself using the wrong button as the menu confirm option, it's become frustrating

--------------------- MERGED ---------------------------

@jurai @MVG The touch keyboard works, but it cannot run if you launch Diablo as applet. Please always start Diablo (and all homebrew for that matter) by holding R when launching a game, to launch as app, not applet.

NEVER use ALBUM to start homebrew. Always use the "Hold R on Game" technique. If you use ALBUM, you give the homebrew only ~200 MB of memory or less, I forgot the exact number. Instead of several gigabytes (!) that you get by holding R over a game.

The virtual keyboard needs the extra mem.

People always think the keyboard doesn't work in all homebrew not just Diablo. But they use ALBUM that is the only reason. Note: There is one single homebrew, some cheating app, that uses a terrible hack to make the keyboard work with ALBUM by moving the heap around. But it can lead to crashes and was officially not allowed by libnx maintainers.

--------------------- MERGED ---------------------------

More improvements (PR to @MVG made):
  • implement direct touch controls (tap to click etc.)
  • improve event code so it doesn't call PressKEY etc directly anymore, but generates proper DVL events. Will help in upstreaming later.
  • change mapping to more closely reflect PS1 mapping (A for spell selection, L/R for char/inv left/right panels). On PS1 the same button (O) was also used for spell select.
  • Map B button to cancel in menu, A button is OK in menu
  • Support physical USB keyboards
  • Make it clear in the README.MD to hold R over an installed game to launch Diablo, not album (otherwise touch keyboard doesn't work)
Preview version for testing:

https://www.patreon.com/posts/28311336

Yeah I didn't even know you could hold R when selecting a game to get the HB Menu to load as a full app.

TBH I don't think it's a good step forward to make that a req for running the title without a softlock, maybe there should still be a default character name and people can change it if they want to, unless there is any evidence otherwise that Diablo is causing memory exhaustion besides the soft keyboard
 

rsn8887

Well-Known Member
Member
Joined
Oct 8, 2015
Messages
956
Trophies
1
Age
46
Website
www.patreon.com
XP
3,616
Country
United States
Ok A/B are swapped in Menu now. I agree it was too confusing before.

--------------------- MERGED ---------------------------

@MVG : Everything is fixed now (I think) and ready to merge. There was a conflict between PR 23 and PR24 but I fixed it by rebasing.

If you merge my PR 24 now then everything should be perfect. Thank you and everybody for your support and patience. Diablo rules.:)
 
Last edited by rsn8887,

SeongGino

The Average One
Member
Joined
May 20, 2015
Messages
939
Trophies
0
Age
25
Location
Jersey, Jersey
Website
www.twitter.com
XP
1,932
Country
United States
Ok A/B are swapped in Menu now. I agree it was too confusing before.

For all my bitching, I've still wasted a couple of hours the past two days on this game for the first time rather comfortably; which is why I complained about such confusion in the first place! So, must mean something is being done right.
 

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,246
Trophies
1
Age
44
XP
6,271
Country
Chile
TBH I don't think it's a good step forward to make that a req for running the title without a softlock, maybe there should still be a default character name and people can change it if they want to, unless there is any evidence otherwise that Diablo is causing memory exhaustion besides the soft keyboard
Album method is obsolete anyway, there’s no benefit using it, you should only use it if you don’t have games installed on your Switch, which is kind of improbable.
 
  • Like
Reactions: rsn8887

SeongGino

The Average One
Member
Joined
May 20, 2015
Messages
939
Trophies
0
Age
25
Location
Jersey, Jersey
Website
www.twitter.com
XP
1,932
Country
United States
Album method is obsolete anyway, there’s no benefit using it, you should only use it if you don’t have games installed on your Switch, which is kind of improbable.
It's useful if you want a quick fix of 'brew but don't want to quit your currently running game. You pay in compatibility (~400mb vs. 3GB) for convenience.
 

BlueCop

Active Member
Newcomer
Joined
May 12, 2019
Messages
27
Trophies
0
Age
44
XP
228
Country
United States
Thanks for all the work on this. I got recommended an interesting video by youtube of the lead developer of Diablo about its development from 2016.

He mentioned how he hoped it would be playable in the future via emulation or something on more platforms.
He seemed like he would appreciate projects like this. I found it an interesting watch while playing around with Diablo on my switch. thanks again.
 

rsn8887

Well-Known Member
Member
Joined
Oct 8, 2015
Messages
956
Trophies
1
Age
46
Website
www.patreon.com
XP
3,616
Country
United States
More improvements (added to the same PR to @MVG repo):

- Allow skipping of intro Diablo logo with any controller button
- Use SDL Game Controller for input wherever possible (exactly the same functionality as before, but more portable: almost no need for #ifdef SWITCH anymore)
- Refactor controller code to shorten switch statements
- Allow B button (in addition to Plus) to skip intro videos

Updated test version: https://www.patreon.com/posts/28311336
 
Last edited by rsn8887,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    ButterScott101 @ ButterScott101: +1