Closed andrew-mcmahon closed 5 years ago
rottexpr does in fact support custom levels, but it appears that I haven't written down how to load them in the readme yet. Unfortunately, rottexpr doesn't have a nice GUI launcher like those source ports do, but I'm considering creating one...
Anyhow, here's what you need to do. If you're on linux, navagate to where your rott executable is, and launch rott with the filertl argument. For example, if I wanted to play the extreme levels, I'd do
rott filertl EXTREME.RTL
If you're on windows, make a shortcut to rott.exe and open properties on the shortcut. In the target textbox, after rott.exe add 'filertl level pack you wish to load'.
When I get a chance, I'll update the readme with all the launch arguments so that various features from the setup utility are at least usable in the meantime.
Thanks for replying and improving RoTT.
I'm using Arch and compiling from the latest sources (i.e. git clone https://github.com/LTCHIPS/rottexpr.git)
Adding filertl [filename] does indeed launch the extra levels (Extreme, UASpray and Wolf3D)
Although it appears that the game occasionally refuses to load the content from the RTL files either crashing on launch or continuing as normal without the addons loaded.
The console output seems to suggest my mouse is interfering with the process and/or that the filename isn't being handled correctly.
If there's any info or more commands I can use to help you narrow this down - don't hesitate to mention.
The overlay in my screenshots is due to GALLIUM_HUD; my general system specs are here.
EDIT I thought I'd try the original release (rott-1.1.2.tar.gz) with the launch argument above and I'm able to load RTC/RTL's reliably without any issue; something must've got broken somewhere...
Hey Andrew,
I tried out loading a level pack on an Ubuntu VM on my PC, and I appear to be having the same issue. Initially it was also reporting something about the VM's mouse (looked similar to your stdout you posted). To make sure that it wasn't something screwed up in my installation, I tried creating a small program that printed whatever was passed into the arguments. From that there didn't appear to be any bizzare changes with the argument like we're seeing with rottexpr.
Here's what I was getting on my end:
huntbgin.rtlID_INPUT=1.rtc not found, skipping RTL file
Thanks for taking the time to try things out with the original icculus port.
Edit: I changed the order of things that ROTT does during startup (now it checks for and loads custom RTL files before initializing input stuff) and I'm able to load levels such as the shareware stuff again. Try switching over to the bugfix branch and try out the bugfix. Let me know if it addresses the issue on your end.
The changes made in the bugfix branch don't quite seem to solved it.
My SDL libraries are up to date:
[mwnn@archlinux .rott]$ pacman -Q | grep sdl*
lib32-sdl 1.2.15-7
lib32-sdl2 2.0.9-1
lib32-sdl2_image 2.0.4-1
lib32-sdl2_mixer 2.0.4-1
lib32-sdl2_ttf 2.0.14-3
lib32-sdl_image 1.2.12-5
lib32-sdl_mixer 1.2.12-3
lib32-sdl_ttf 2.0.11-4
sdl 1.2.15-10
sdl2 2.0.9-1
sdl2_gfx 1:1.0.4-1
sdl2_image 2.0.4-2
sdl2_mixer 2.0.4-2
sdl2_ttf 2.0.14-2
sdl_gfx 2.0.26-3
sdl_image 1.2.12-5
sdl_mixer 1.2.12-6
sdl_ttf 2.0.11-5
I downloaded a fresh copy of the code using:
git clone --single-branch --branch bugfix https://github.com/LTCHIPS/rottexpr.git
Built the registered version of the game with make -j4
I also deleted the game's old config directory in:
/home/mwnn/.rott
The game no longer crashes or complains on launch as it did before but the addons still don't load.
Actual gameplay is mostly unaffected by the changes except that the mouse is always turned off in the controls menu when re-launching the game.
If I manually change the config.rot & /darkwar/config.rot files it keeps reverting back! =)
Here's my console output:
./rott_registered filertl UASPRAY.RTL
Rise of the Triad Startup Version 1.4
Commercial Version
Z_INIT: 899950000 bytes
UASPRAY.RTLK� .rtc not found, skipping RTL file
Adding DARKWAR.WAD.
Adding REMOTE1.RTS.
W_Wad: Wad Manager Started NUMLUMPS=3904
RT_DRAW: Tables Initialized
IN_Startup: Mouse Present
MU_Startup:
SD_SetupFXCard: Fx ok.
SD_Startup: Fx ok.
RT_MAIN: Fonts Initialized
RT_MSG: Message System Started
RT_VIEW: Colormaps Initialized
It looks like some funny characters are still being appended onto the filename - could it be something like a Windows line break character?
If I try to force loading RTL or RTC files using filertc I get this instead:
[mwnn@archlinux RoTT]$ ./rott_registered filertc UASPRAY.RTL
Rise of the Triad Startup Version 1.4
Commercial Version
Z_INIT: 899950000 bytes
UASPRAY.cUK� .rtc not found, skipping RTC file
UASPRAY.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file
UASPRAY.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file
UASPRAY.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file
UASPRAY.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file!.rtc not found, skipping RTC file
realloc(): invalid next size
Aborted (core dumped)
[mwnn@archlinux RoTT]$ ./rott_registered filertc REJECTS.RTC
Rise of the Triad Startup Version 1.4
Commercial Version
Z_INIT: 899950000 bytes
REJECTS.cUK� .rtc not found, skipping RTC file
REJECTS.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file
REJECTS.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file
REJECTS.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file
REJECTS.cUK� .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file .rtc not found, skipping RTC file!.rtc not found, skipping RTC file
realloc(): invalid next size
Aborted (core dumped)
Maybe I should run that small program you wrote?
...and btw don't get all stressed over this; it's not the end of the world =)
I'm pleased to say that https://github.com/LTCHIPS/rottexpr/commit/2b7c975f23cdafb982f2c958cd2c533f2c6db986 appears to have fixed this issue for good.
All of the single-player RTL files load first time without error.
As do the comm-bat RTC files.
The mouse is detected/functions normally.
You can load any of the RTL/RTC files using filertl or filertc depending on how you wish to use the maps.
You don't even particularly need to build the shareware version since you can load prequel campaign (HUNTBGIN.RTL/HUNTBGN2.RTL)
in the registered version.
I'll play through it today but I think it's good enough to commit personally. Any strangeness on your end?
Got a primitive startup script that launches through a desktop shortcut - not very robust but does the trick for me.
#!/bin/sh
clear
echo "--- Rise of the Triad ---"
echo
PS3=$'\n'"Please enter your choice: "
options=("Full" "Shareware" "Custom" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Full")
./rott_registered
break
;;
"Shareware")
./rott_shareware
break
;;
"Custom")
echo
ls *.RTL
echo $'\n'"Please type the name of the addon"
read addon
./rott_registered -filertl $addon
echo $addon
break
;;
"Quit")
break
;;
esac
done
Good to hear!
Anyways, seems like the string grabbed from the launch arguments didn't include a NUL terminated character to indicate the end of the string, hence the weird characters. I didn't have this problem on Windows, but went ahead and used snprintf
instead of strcpy
for copying the filename to the tempstr
, which is to scan for the file. snprintf
adds a NUL character at the end of the string automatically unlike strcpy
. My Arch Linux and Ubuntu VMs aren't having problems anymore, so I'm going to consider the issue solved.
Appreciate the little launcher you whipped up there; when I get a chance I'll add it to the master branch.
Is there any support for loading these extra levels in the Linux port?
I couldn't see any mention of this oversight on icculus.org.
GOG package the game with DOSBOX across all platforms.
A small setup utility is included to switch between game files - as was fairly typical from games of this era.
ROTT Setup 1 ROTT Setup 2
Without having this utility it doesn't seem possible? Just out of interest ECWolf, GZDoom, Quakespasm, eDuke32, etc - are all able to launch expansion content and - in some cases - generate a nice launch menu. It'd be a shame if ROTT didn't get the same treatment.