Hexen II - uHexen II: Hammer of Thyrion source port on RetroPie/Raspbian (Ready for download)
-
@Krisu When i first created the script i had some problems with getting the invisible .hexen2 folder created as the Pi user. The folder got created as the root user, which made the executable Hexen2 file not be able to locate the Hexen 2 game paks (.pak files) as it were looking into the wrong directory. This should have been solved on the first release of the install script.
Glad to know that you got it working. :-)
Im working on improving the install script and making it easier to use. Also new ways of installing Hexen 2 will be featured as well.
-
Later I try to make full version and a addon get to work. What about Heretic 2 or Sin ? :>
-
@Krisu Yes you can always remove the demo pak files of Hexen 2 in the .hexen2 folder and use the full registered version from original Hexen 2 CD. Just keep in mind, that you might have to patch the pak files to v. 1.11 before copying them over into that same folder for it to work. If you dont use patched pak files (1.11) Hammer of Thyrion will not be able to run Hexen 2 and it will show an error message, that you need to use pak files of version 1.11.
My primary goal is to make as many good old PC games available on the Raspberry Pi so that the Ports section can be expanded further, but that can only happen if a source port exists of the games and that the source port is supported to be build on Arm architecture, just like the Hammer of Thyrion which is a source port for Hexen 2. I have already planned more games that might work but that will come later and the games will be created in another thread for their own part.
I have already tried to see if there is a source port for Heretic 2. Unfortunately i could not find any source port that can be used for our Raspberry Pi. Others might have better luck. I havent checked if there is a source port for Sin. :-)
-
@tpo1990 said in Hexen II - uHexen II: Hammer of Thyrion source port on RetroPie/Raspbian (Ready for download):
My primary goal is to make as many good old PC games available on the Raspberry Pi
I wish you luck and thanks for your work.
Ok, I finished Q2 (again), so it's time for love-hate labyrinths and searching for switches in Hexen, but I can't get this to work.
======== Hexen II Initialized =========
execing hexen.rc
execing default.cfg
execing config.cfg
execing autoexec.cfg
Host_Error: Host_LoadStrings: couldn't load strings.txt
Shutting down Timidity.
Shutting down SDL soundMy pak files have correct md5 checksum, and they are updated to 1.11. I have searching for solution, but didn't find any. Can you? <:
I have changed permissions to whole .hexen2 directory, but it didn't help.
-
@Krisu Thank you very much. I have noticed in RetroPie forum that others are trying to making more source ports available too. :-)
The error: Host_Error: Host_LoadStrings: couldn't load strings.txt. This means that Hammer of Thyrion source port executable can not find the file strings.txt in .hexen2 folder that it need.
You need to copy the strings.txt file from either the original Hexen 2 or the shareware Hexen 2 installation or from the original CD of Hexen 2. Hammer of Thyrion source port will not be able to load Hexen 2 correctly if the file is not found.
You actually gave me an idea to prevent those errors. I will make an faq about which errors to look out for and how to fix them. I will do this in the upcoming weekend.
-
Omg, I've checked the directory of full version of H2, and there is a file named stings.txt . Didn't noticed it before - I've copied the pak files few times, I was thinking that is something wrong with the pak files (couse demo version launched without that error).
Again thank for your help :)
-
@Krisu Yeah i know, as that with my first tries i also experienced the same error when trying to load Hexen 2 and found the solution earlier. :-)
Glad i could help out again. :-)
-
i have uhexen2 succesfully compiled and running. however when i choose the character class demoness in the mission pack 'portal of praevus' and start the game it crashes. i dont have this problem with the windows version of uhexen2 so. all other things just run fine.
btw when u bind quit to a key it doesnt quit instantly like in doom or quake ports. i got around this by binding killing the process for hexen2 binary to a button with xboxdrv.
-
@QuakeGuy Good to know that you got it running. Unfortunately that is a bug only present in the mission pack, which means only the normal characters is playable througout the maps in portal of praevus. I have tested this earlier last year with another RetroPie and the error is the same. I dont have a solution at the moment. But if you happen to solve it, let me know by replying into this thread.
Yes it might be that you need to press an extra button in order to quit Hexen 2. Also this might help other people. Thank you.
-
@tpo1990 thank you for your reply. the itension of my post was to know if this is a common error. maybe this is fixed in the future. did the uhexen2 team know about this error in linux arm?
i can post my xboxdrv config for this, if anybody wants. i bind quit (kill hexen2) to guide + select, the standard hotkey in the retroarch ports.
-
@QuakeGuy Im not sure if the uhexen2 team knows about this error in the linux arm version, but it could also just be a compile error due to some packages not working correctly. I know for a fact that the Doom legacy source port has some differences in its build versions that has been released over the years, hence making it difficult to get Doom legacy working without any issues.
Maybe it could be tested out with an older version of the uhexen2 source port to see if the error also affects it there. Otherwise i could try to contact them and see if they have any knowledge about this. But before this i think it would be wise to make some more tests with the uhexen2 source port first.
Yes please do upload it to this thread. I think it could be useful to other people. I will mention your name in the contributions aswell :-)
-
So here i post my Xboxdrv setup for Hexen2. You can use Xboxdrv to map all the important key- and mouse-bindings to your controller.
Firstly install Xboxdrv. You find it in Retropie-Setup - Configuration / tools - 842 xboxdrv. Now add the following command to your hexen2.sh
#!/bin/bash sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv >> /dev/shm/runcommand.log 2>&1 --evdev /dev/input/event0 --config /opt/retropie/configs/all/xboxdrv_hexen2.cfg & "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "hexen2" ""
Create the Xboxdrv configuration file xboxdrv_hexen2.cfg in /opt/retropie/configs/all with the following content.
[xboxdrv] silent=true deadzone=4000 deadzone-trigger=15% dpad-as-button=true trigger-as-button=true detach-kernel-driver=true #force-feedback=true mimic-xpad=true [evdev-absmap] ABS_X=x1 ABS_Y=y1 ABS_RX=x2 ABS_RY=y2 ABS_HAT0X=dpad_x ABS_HAT0Y=dpad_y [evdev-keymap] BTN_SOUTH=a BTN_EAST=b BTN_NORTH=x BTN_WEST=y BTN_TL=lb BTN_TL2=lt BTN_TR=rb BTN_TR2=rt BTN_SELECT=back BTN_START=start BTN_MODE=guide [ui-axismap] x1=KEY_LEFTBRACE:KEY_RIGHTBRACE y1=KEY_Q:KEY_E x2=REL_X:15 y2=REL_Y:15 [ui-buttonmap] a=BTN_LEFT b=KEY_LEFTCTRL x=KEY_ENTER y=KEY_R lb=KEY_C lt=KEY_A rb=KEY_SPACE rt=KEY_D dl=KEY_LEFT dr=KEY_RIGHT du=KEY_UP dd=KEY_DOWN back=KEY_TAB start=KEY_ESC guide=KEY_PAUSE guide+start=exec:/opt/retropie/configs/all/kill_hexen2.sh # EOF #
Finally also create the script kill_hexen2.sh in the same directory and make it executable.
#!/bin/sh sudo killall >> /dev/shm/runcommand.log 2>&1 hexen2
You also need to kill Xboxdrv after each run, so your standard controller is still active in Emulation station. To do this global Xboxdrv task, simply create or append this to file runcommand-onend.sh in the same directory and don't forget to make it executable.
#!/bin/sh sudo killall >> /dev/shm/runcommand.log 2>&1 xboxdrv
Xboxdrv tries binding to event0. If u have multiple controller or keyboard and mices connected to your Pie, this event may differ. You can use evtest /dev/input/event[•] for testing.
Now you can play Hexen2 with your controller only, and even do a instant quit with guide+select.
As i have experience with quake scripting, i will next post my chasecam-script for Hexen2. You can instantly switch first-person-view with 3rd-person-view with this. This comes in handy as the game plays more like a console game as Tomb Raider.
-
@QuakeGuy Great work. Thanks for helping out. This will surely make it easier for people who only want to play with their controller/gamepad.
Your experience with quake scripting will surely be beneficial at making more options available for Hexen 2. :-)
-
I have now made a completely new scriptmodule for Hexen 2 that will be installed from the RetroPie Setup optional packages. This will make it easy to install and integrate it into our RetroPie installation.
I have also made a pull request to the master branch of RetroPie-Setup and until that has been approved you can manually clone/download from my fork of RetroPie setup tpo1990/RetroPie-Setup and that will make Hexen2 package a part of RetroPie and installed from optional packages in your RetroPie setup. You can find it under the Download section of this thread.
Notice: If you already have an Hexen 2 : Hammer of Thyrion port installed on your RetroPie. Please remove/uninstall it first.
These files/folders need to be removed.
/home/pi/RetroPie/roms/ports/hexen2/ home/pi/RetroPie/roms/ports/Hexen II.sh /home/pi/.hexen2
-
I forgot to include how to get the scriptmodule.
Here is the Hexen2 scriptmodule for RetroPie.
You can get the Hexen2 scriptmodule by this command:
wget https://raw.githubusercontent.com/tpo1990/Hexen2-RPI/master/hexen2.sh -P /home/pi/RetroPie-Setup/scriptmodules/ports/
This will download the scriptmodule from my fork of RetroPie and place it into the /home/pi/RetroPie-Setup/scriptmodules/ports/
Once downloaded, go into RetroPie-Setup as usual and into the Experimental section to find "hexen2" and then install.
Once the game has been installed, it will have been installed with this file hierachy:
-
Game data location: /home/pi/RetroPie/roms/ports/hexen2/data1
-
Runcommand file: /home/pi/RetroPie/roms/ports/Hexen II.sh
-
Config location: /opt/retropie/configs/ports/hexen2
-
Port installation location: /opt/retropie/ports/hexen2
For registered version, replace the the pak files with pak0.pak, pak1.pak and add strings.txt in the Game data location: /home/pi/RetroPie/roms/ports/hexen2/data1
-
-
@tpo1990 I'm a little lost, if anyone has the time to give me a hand. I've installed Hexen 2 source port and everything runs great; I even got the joystick working with little effort. But I can't for the life of me figure out how to get the Portals of Praevus mission pack to work. I have pak3.pak in the data1 folder, and I also have the "Portals" folder from the version installed on my pc copied into "/home/pi/RetroPie/roms/ports/hexen2" so I have pak3.pak in two different places to be safe.
I tried creating a .sh file similar to all of my doom source files that says "#!/bin/bash
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 PORT "hexen2" "/home/pi/RetroPie/roms/ports/hexen2/Portals/pak3.pak" and during the load screen it'll even say loading pak3.pak, but it always just starts playing Hexen II, and not the mission pack. Does anyone know what I'm doing wrong? -
@OldSchool For the Hexen 2 source port to recognize Portals of Praevus mission pack and getting it to work, the pak3.pak file should be placed only in its own folder "portals" in the hexen2 roms folder and you need to specifiy the .sh file to launch Portal of Pravevus by using the switch "-portals"
That means it would probably look something like this in the new .sh file.
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 PORT "hexen2 -portals"
I hope this helps.
-
@tpo1990 Ah, that makes sense. I changed it to "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 PORT "hexen2 -portals" "" but it didn't work. It went to the command line for a second and said no config found for system hexen2 -portals. So I went into the Portals of Praevus folder on my PC install, but there was no config file there either. I started a game of Portals of Praevus hoping the game would then create a config file, which it did. So after closing Portals of Praevus on the PC I transferred the config file into the portals folder on the RetroPie, but I still get the same message of no config file. Maybe it's supposed to be in a different directory than the portals folder? I feel like it's so close, like I'm missing one crucial thing.
-
Hi OldSchool. You are using the runcommand tool to start the hexen2-binary, so you have to configure the location of your hexen-binary also. In this case look for the file configs/ports/hexen2/emulator.cfg. The file should point to your hexen2:
uhexen2 = "/usr/games/hexen2 %ROM%" default = "uhexen2"
Just create it, if the file is missing or start hexen2 without runcommand.
My command line for hexen2 is
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "hexen2" ""
and for the misson pack
"/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _PORT_ "hexen2" "-portals"
-
@OldSchool Yes its probably just a line that you need change in order for the Hexen 2 binary to load the mission pack.
The suggestion that @QuakeGuy comes up with seems like a feasible solution to accomplish it.
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.