Giter Site home page Giter Site logo

devilution-nx's Introduction

Nintendo Switch Port of DevilutionX (Diablo)

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.

Compiling On Linux

install devkitproA64, libzip, libpng, libjpeg, switch-freetype, switch-mesa, switch-glad, switch-glm, switch-sdl2, switch-sdl2_ttf, switch-sdl2_mixer, switch-libvorbis, switch-libmikmod

make

Compiling On Windows

  • Install devkitpro
  • Open Start Button > DevKitPro > MSys2
  • Type in pacman -S switch-freetype switch-mesa switch-glad switch-glm switch-sdl2 switch-sdl2_ttf switch-sdl2_mixer switch-libvorbis switch-libmikmod
  • Type in make

Compiling On MacOS

  • Install devkitpro

  • Open Terminal and run the following commands:

  • dkp-pacman -S switch-dev to install more build tools

    • At a minimum, you will need to install devkitA64 and switch-tools
  • dkp-pacman -S switch-freetype switch-mesa switch-glad switch-glm switch-sdl2 switch-sdl2_ttf switch-sdl2_mixer switch-libvorbis switch-libmikmod

  • make

  • .nro lives in release. Test with an emulator (RyuJinx) or real hardware.

Credits

  • Reverse engineered by GalaXyHaXz in 2018
  • Switch Port by MVG in 2019
  • Control Improvements and bug fixes for Switch Port by rsn8887 in 2019
  • Controller code by Jacob Fliss
  • RetroArch team for the Switch mman.h file
  • sanctuary - extensively documenting Diablo's game engine
  • BWAPI Team - providing library API to work with Storm
  • Ladislav Zezula - reversing PKWARE library, further documenting Storm
  • fearedbliss - being awe-inspiring
  • Climax Studios & Sony - secretly helping with their undercover QA :P
  • Blizzard North - wait, this was a typo!
  • Depression - reason to waste four months of my life doing this ;)

And a special thanks to all the support and people who work on Devilution to make it possible! <3

Legal

Devilution is released to the Public Domain. The documentation and function provided by Devilution may only be utilized with assets provided by ownership of Diablo.

Battle.net(R) - Copyright (C) 1996 Blizzard Entertainment, Inc. All rights reserved. Battle.net and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

Diablo(R) - Copyright (C) 1996 Blizzard Entertainment, Inc. All rights reserved. Diablo and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

Devilution and any of its' maintainers are in no way associated with or endorsed by Blizzard Entertainment(R).

devilution-nx's People

Contributors

erfg12 avatar rsn8887 avatar tjarratt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devilution-nx's Issues

diablo-nx not launching in Yuzu (tracking issue)

Since I'm making commits to Yuzu (Switch emulator) I will be looking into this. For context I think it will be easier to debug from this side than emulator-side. I'll create a sister issue for them as well once I figure out how to compile and rule out anything dumb such as not checking the right directory.

Steps

  1. Copied DIABDAT.MPQ and contents of diablo-nx.zip to AppData\Roaming\yuzu\sdmc\switch\diablo-nx.
  2. In Yuzu (master), File -> Load File... -> diablo-nx.nro.
  3. Yuzu shows loading bar for 1s, followed by game immediately closing back to the rom list.

Notes

  • Does create a diablo.ini in yuzu\sdmc, so it is doing something before closing.

Issues

  • NRO game title/header metadata is missing.
  • Game immediately closes.

No right click?

There doesn't seem to be a right click mapped. I'm not able to use MP pots or Scrolls

Vile stand not on level 15

I reached level 15 and have explored the entire level and i can't find the vile stand which holds the Lazarus staff.
Without this the game is unbeatable and you can't progress.
Is it a bug or am i missing something?

Port on RetroStone/Retrorangepi

Any chance to see a port for RetroStone / Retrorangepi? :)

It's a game console running armbian (a debian variant for Allwinner SoC). It has a dpad and 10 buttons.

Could you help giving hints about what should be modified for the controllers?

NPC speech out of nowhere

Sometimes when you are inside the dungeon a text overlay appears and display NPC speech, even with voice. It’s weird because the times it has happened there’s no NPC near to trigger a speech.

I wonder if it’s a game bug or port bug.

No limit on stats increase

Once in the dungeon, I can just press R to open the character panel, use the left stick to select any stat I want and press B to increase it as much as I want.

There seems to be no check to limit the stats increase.

Multiplayer Crashes Atmosphere

In addition to the already created keyboard missing issue (so unable to test entering an IP to play multiplayer over TCP/UDP) creating a multiplayer game via loopback crashes Atmosphere.

I don't know if the solution is possible, or if it's worth removing the multiplayer option from the menu to prevent having to reboot the console.

Game speed

Would be nice for future request game speed

-Normal
-Fast

It fails to compile

In file included from SourceX/miniwin/dsound.cpp:2:
SourceX/miniwin/dsound.h:3:10: fatal error: SDL_mixer.h: No such file or directory
#include <SDL_mixer.h>
^~~~~~~~~~~~~
compilation terminated.
makefile:312: recipe for target 'obj/dsound.o' failed
make: *** [obj/dsound.o] Error 1

Initial Launch crashes

Initial game launch crashes console. After reboot it works fine. Is it because Diablo.ini isn`t initially created?

No way to open Quest log (Q)

It seems with the new mappings there’s no way anymore to open the quest log.

I can use right stick to move the mouse pointer over the quest log button, but there’s no way to click it.

Pressing a button immediately after a level transition will cause an immediate level skip which you cannot escape from

I tested this in devilution-nx initial release (0.9) as well as 0.92, 0.94, and compiling from latest available code and it happens in every build.

If you immediately press a button such as A right after going down or up a set of stairs, you immediately transition to the next floor forwards or backwards, depending on which direction you were going, but your character is not in your view port and you are essentially softlocked unless you load a save.

I haven't used devilution on PC so I don't know if it's some debug feature in the base code, cursory glance at erfg12's pc controller fork and devilutionX at commits and issues I didn't immediately see anything mentioning this issue so can't really tell if it came from changes here or elsewhere.

Made a couple new characters and could replicate every time, I'm using the MPQ from an original diablo disc if it makes any difference.

No commit history from upstream

Could you maybe rebase on upstream and apply your commits again so we get full commit history? I think if you made a new branch, rebased the branch on upstream, and cherry picked your commits. Then force pushed it into master, you would have done it successfully, restoring lost history, for the benefit of mankind.

Benefits:

  • Due credit to the 35+ developers that spent a combined 6000+ hours to make this port possible.
  • It's easier to maintain your port, rebasing on upstream, or cherrypicking commits later
  • It's easier to fork your port, lets say by someone who wants to port it to another console.
  • It's easier to study your source to learn from it.
  • Quite sad to delete history, even if it was by accident.
  • Easier to upstream your changes while fully attributing your contribution to in the commit history.

No input at all

Sorry for making an issue, but I've been struggling to fix this.

When I run this the game opens, sound plays, and it takes me to the menu, but it seems I can't input anything at all (pressing any/all buttons does absolutely nothing).

I'm using version 0.95 of this package, and am running 10.1.0|AMS 0.13.0 on my switch...

Do you have any pointers for me?

Pressing + or open inventory near a dungeon up/down glitches

All sorts of weird glitches happen when you open inventory or press + near the dungeon up/down staircases.

Most of the time it makes my character invisible and disables movement.

An easy temporary fix would be to detect if you're near a staircase and disable all button presses except for movement. But, that wouldn't be a good permanent fix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.