Diablo 1 ported to PI
-
@roslof said in Diablo 1 ported to PI:
Still digging...
Got it... At last!
Okay, after banging my head against the wall all night, learned that there's something wrong with the compiled executable.
I visited this link from the OP and downloaded the binary (devilutionx-linux-armhf.7z) and replaced the contents in /opt/retropie/ports/devilutionx/ -- and now the game runs fine.
So now, just wondering if the script compile options are funky, or if (more than likely) the code base is currently in an unstable state?
Repro of my issue after running the script:
- Font doesn't load by default
- After creating a character and trying to start the game, a red window appears. If the font is hooked up, you'll see "Error Unable to open archive" -- otherwise, it'll be blank per my earlier post.
Again this issue does not occur with the 1.0.1 binary (built back in March).
Hope this is helpful.
Cheers! -
@zerojay I recommend adding pushd/popd to the emulator so the TTF is read:
devilutionx = "pushd /opt/retropie/ports/devilutionx/; /opt/retropie/ports/devilutionx/devilutionx --data-dir /home/pi/RetroPie/roms/ports/devilutionx"; popd" default = "devilutionx"
To see what I mean, select "Credits" and without it, you shouldn't see the credits crawl.
Thanks again for providing the script!
Cheers,
-Ros -
Nothing wrong with the compiled executable here. No need to add pushd or popd here either as the font lives directly next to the executable. Perhaps something specific to your system maybe.
EDIT: I just deleted everything to do with the app including config files and recompiled latest from scratch. The resulting executable launches just fine, finds the font next to the executable and loads the diablo data perfectly. So yeah, gotta imagine it's something on your system causing problems there.
-
@zerojay said in Diablo 1 ported to PI:
So yeah, gotta imagine it's something on your system causing problems there.
Thanks for checking and re-checking! Yes, it must be something on my system that has to do with compiling the code, because a pre-built executable works fine for me. I'll backup my pi and upgrade everything and see what I get.
-
@roslof I, too had the same problems. I looked into the runcommand.log and found that the ttf was expected in the /usr/share/fonts/ttf/ folder. So I copied the font from the /opt/retropie/ports/devilutionx/ folder over and then at least the error message was readable. I then reinstalled devilutionx from source and I could start the the game without further issues.
-
@ecto said in Diablo 1 ported to PI:
@roslof I, too had the same problems. I looked into the runcommand.log and found that the ttf was expected in the /usr/share/fonts/ttf/ folder. So I copied the font from the /opt/retropie/ports/devilutionx/ folder over and then at least the error message was readable. I then reinstalled devilutionx from source and I could start the the game without further issues.
Oh that's interesting! How did you get devilutionx to output verbose logs to runcommand.log? By default, I do see output about the controller and such, but nothing regarding the font showed up for me, and I was unable to find command-line options for this.
EDIT: I think I better understand. The code writes to the log if the font cannot be found. But that wasn't my problem. I used pushd to guide the game finding the font in the executable dir... So it passed initialization and didn't yield and error. But [I suspect[ later in the code, it fails trying to read the font from the usr/share/fonts/truetype folder, which wouldn't show up in the log.
Excited to try what you suggest! Can't want to play the updated version with all the fixes and enhancements.
@zerojay would you confirm if you have a copy of the font sitting in a /usr/share/fonts/ttf/ folder? If you do, that would explain why your script is working well for you.
-
@roslof said in Diablo 1 ported to PI:
@ecto said in Diablo 1 ported to PI:
@roslof I, too had the same problems. I looked into the runcommand.log and found that the ttf was expected in the /usr/share/fonts/ttf/ folder. So I copied the font from the /opt/retropie/ports/devilutionx/ folder over and then at least the error message was readable. I then reinstalled devilutionx from source and I could start the the game without further issues.
Oh that's interesting! How did you get devilutionx to output verbose logs to runcommand.log? By default, I do see output about the controller and such, but nothing regarding the font showed up for me, and I was unable to find command-line options for this.
Excited to try what you suggest! Can't want to play the updated version with all the fixes and enhancements.
@zerojay would you confirm if you have a copy of the font sitting in a /usr/share/fonts/ttf/ folder? If you do, that would explain why your script is working well for you.
/usr/share/fonts/ttf/ doesn't exist. Running a search of all ttf files in /usr/share/fonts/ shows the game's font does not exist there at all. It is only in /opt/retropie/ports/devilutionx/ and that's where you should have it too.
function install_devilutionx() {
md_ret_files=(
'build/devilutionx'
'build/CharisSILB.ttf'
)
} -
@zerojay said in Diablo 1 ported to PI:
@roslof said in Diablo 1 ported to PI:
@ecto said in Diablo 1 ported to PI:
@roslof I, too had the same problems. I looked into the runcommand.log and found that the ttf was expected in the /usr/share/fonts/ttf/ folder. So I copied the font from the /opt/retropie/ports/devilutionx/ folder over and then at least the error message was readable. I then reinstalled devilutionx from source and I could start the the game without further issues.
Oh that's interesting! How did you get devilutionx to output verbose logs to runcommand.log? By default, I do see output about the controller and such, but nothing regarding the font showed up for me, and I was unable to find command-line options for this.
Excited to try what you suggest! Can't want to play the updated version with all the fixes and enhancements.
@zerojay would you confirm if you have a copy of the font sitting in a /usr/share/fonts/ttf/ folder? If you do, that would explain why your script is working well for you.
/usr/share/fonts/ttf/ doesn't exist. Running a search of all ttf files in /usr/share/fonts/ shows the game's font does not exist there at all. It is only in /opt/retropie/ports/devilutionx/ and that's where you should have it too.
function install_devilutionx() {
md_ret_files=(
'build/devilutionx'
'build/CharisSILB.ttf'
)
}Based on @ecto 's recommendation, I created the ttf folder and copied the font. I ran the script -- and for the first time, I'm able to compile play the new version. Would love to better understand why.
EDIT: In DevilutionX source, I do see reference to /usr/share/fonts/truetype (truetype and not 'ttf'). So to get further, I moved the font from the ttf folder I credted into the existing truetype and now EVERYTHING works, including the credits roll. Finally...
Here are the source files referencing /usr/share/fonts/truetype:
devilutionX-master\Packaging\debian\rules: install -pdm755 debian/devilutionx/usr/share/fonts/truetype/ devilutionX-master\SourceX\DiabloUI\fonts.cpp: ttf_font_path = "/usr/share/fonts/truetype/" TTF_FONT_NAME;
@zerojay for the record you're completely correct about the font being installed next to the executable and such. Not sure why the game is not finding it there for both me and @ecto.
-
This post is deleted! -
@roslof Uh, yeah, about that, sorry! It was late yesterday evening and I typed from mind. it is of course
/usr/share/fonts/truetype/
and not/usr/share/fonts/ttf/
I just quickly checked that on my retropie.Glad, it works for you now.
-
Disclaimer: noob trying to get this to work.
My thought was that if I copied the .sh file to my Ports Scriptmodule directory, then Retropie-Setup would see it and then when I looked into the details in that menu, that would direct me as to where to put the Diablo game files before running this.
RetroPie-Setup won't even load if I put the .sh file in the directory, so that isn't the way forward. How do I run the .sh? Sorry for asking questions that may appear obvious.
-
@AdamBeGood said in Diablo 1 ported to PI:
Disclaimer: noob trying to get this to work.
My thought was that if I copied the .sh file to my Ports Scriptmodule directory, then Retropie-Setup would see it and then when I looked into the details in that menu, that would direct me as to where to put the Diablo game files before running this.
RetroPie-Setup won't even load if I put the .sh file in the directory, so that isn't the way forward. How do I run the .sh? Sorry for asking questions that may appear obvious.
Everything you need to know is on the front page of the repo. If you are having problems with RetroPie-Setup, it's not caused by my .sh file which is working fine here with RetroPie-Setup.
-
@zerojay said in Diablo 1 ported to PI:
@AdamBeGood said in Diablo 1 ported to PI:
Disclaimer: noob trying to get this to work.
My thought was that if I copied the .sh file to my Ports Scriptmodule directory, then Retropie-Setup would see it and then when I looked into the details in that menu, that would direct me as to where to put the Diablo game files before running this.
RetroPie-Setup won't even load if I put the .sh file in the directory, so that isn't the way forward. How do I run the .sh? Sorry for asking questions that may appear obvious.
Everything you need to know is on the front page of the repo. If you are having problems with RetroPie-Setup, it's not caused by my .sh file which is working fine here with RetroPie-Setup.
I am not criticising your .sh at all! I am sure this is my fault. I've had a look at the repo but I still don't really know what I'm doing (although I see it tells me where to put the data file).
I get the following:
/home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh: line 6: syntax error near unexpected token "newline" /home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh: line 6: '<DOCTYPE.html>' Module /home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh is missing valid rp_module_id Module /home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh is missing valid rp_module_desc
-
@AdamBeGood said in Diablo 1 ported to PI:
@zerojay said in Diablo 1 ported to PI:
@AdamBeGood said in Diablo 1 ported to PI:
Disclaimer: noob trying to get this to work.
My thought was that if I copied the .sh file to my Ports Scriptmodule directory, then Retropie-Setup would see it and then when I looked into the details in that menu, that would direct me as to where to put the Diablo game files before running this.
RetroPie-Setup won't even load if I put the .sh file in the directory, so that isn't the way forward. How do I run the .sh? Sorry for asking questions that may appear obvious.
Everything you need to know is on the front page of the repo. If you are having problems with RetroPie-Setup, it's not caused by my .sh file which is working fine here with RetroPie-Setup.
I am not criticising your .sh at all! I am sure this is my fault. I've had a look at the repo but I still don't really know what I'm doing (although I see it tells me where to put the data file).
I get the following:
/home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh: line 6: syntax error near unexpected token "newline" /home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh: line 6: '<DOCTYPE.html>' Module /home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh is missing valid rp_module_id Module /home/pi/Retropie-Setup/scriptmodules/ports/devilutionx.sh is missing valid rp_module_desc
You need to follow the instructions on the front page of the repository.
-
@zerojay said:
You need to follow the instructions on the front page of the repository.
Once I worked out where the front page was this wasn't too bad, your instructions are very clear and I can see why you get frustrated.
I also had to perform the font steps mentioned above, but now it runs perfectly. Thank you, and apologies again!
-
I'll add the font stuff in. Obviously there must be something different between our machines causing this, but if it won't harm things on my end, I'll add it in to make things more convenient for everyone. Likely will update tonight.
-
does it work with your script on pi 3b+?
what steps for install after install standard retropie?many thanks!
-
@rsaurer said in Diablo 1 ported to PI:
does it work with your script on pi 3b+?
I build and test each release on a pi 3b+. I don't know anything about retropi though so can't help with that part. I would have expected it to be able to find installed application so if you install via the .deb it might work with out you haveing to do anything special.
We just released a new verison 6 days ago with widescreen support amonst many other improvments.
Have fun.
-
Sorry if this topic is too old, but I feel like it would be more tidy to keep things in one topic rather than create a new one.
I'm having an issue installing this on my Pi 4. RetroPie-Setup script says version 4.7.11, last commit 2 days ago, so I'm nice and updated.
Anyways, here is the end portion of the log file after compiling fails:
[ 44%] Building CXX object CMakeFiles/devilution.dir/Source/multi.cpp.o [ 45%] Building CXX object CMakeFiles/devilution.dir/Source/nthread.cpp.o /home/pi/RetroPie-Setup/tmp/build/devilutionx/Source/multi.cpp: In function ‘dvl::BOOL dvl::NetInit(dvl::BOOL, dvl::BOOL*)’: /home/pi/RetroPie-Setup/tmp/build/devilutionx/Source/multi.cpp:741:54: error: expected primary-expression before ‘;’ token sgGameInitInfo.versionMajor = PROJECT_VERSION_MAJOR; ^ /home/pi/RetroPie-Setup/tmp/build/devilutionx/Source/multi.cpp:742:54: error: expected primary-expression before ‘;’ token sgGameInitInfo.versionMinor = PROJECT_VERSION_MINOR; ^ /home/pi/RetroPie-Setup/tmp/build/devilutionx/Source/multi.cpp:743:54: error: expected primary-expression before ‘;’ token sgGameInitInfo.versionPatch = PROJECT_VERSION_PATCH; ^ make[2]: *** [CMakeFiles/devilution.dir/build.make:570: CMakeFiles/devilution.dir/Source/multi.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [CMakeFiles/Makefile2:147: CMakeFiles/devilution.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 /home/pi /home/pi/RetroPie-Setup/tmp/build/devilutionx /home/pi cp: cannot stat '/home/pi/RetroPie-Setup/tmp/build/devilutionx/CharisSILB.ttf': No such file or directory Could not successfully install devilutionx - Diablo Engine (/home/pi/RetroPie-Setup/tmp/build/devilutionx/build/devilutionx not found). /home/pi Log ended at: Tue Mar 23 17:45:27 ADT 2021 Total running time: 0 hours, 0 mins, 40 secs
Thanks in advance to anyone that can help me out.
-
@pjmcphizzle i was just messing with that this moring
the install script is now wrong. the devs for the diablo port changed things up.
i updated mine after doing some tests
give it a shot and let me knowyou will need to go in and replace all that it is in the install script thats on your pie with what is in the link.
if you dont know how. ill make a link on my Git page to install it tomorrow
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.