#Descent 1/2
1 messages · Page 2 of 1
If you ever want to try out wsl2 here is the guide I wrote for my build system https://github.com/Cebion/Portmaster_builds
You can just skip the sdl2 step. In wsl2 you can at least copy stuff via Windows Explorer or if you want to for example compile the Linux amd64 version to see if a bug also exist in that version. You can also for some time now open graphical programs directly from within wsl2. For example explorer.exe . Will open the windows explorer in the Linux directory you're in
Hybrid Linux lol
Ah I think I want the elf toolchain instead of gnu
One last thing I wanted to mention, this project is a bit more tricky than the usual projects. So you would have had 10 games ported by now 🙂
But you learn stuff by experimenting, and eventually you'll revisit stuff with more knowledge and then go like duh what did I do back then?! And have a new view of it
Happens all the time 
Idk if it helps but i have never used wifi on my chi. Or installed portmaster. But I think arkos comes with the necessary folders. If not, you just have to put the portmaster folder in the right place. All I had to do was unzip and put descent folder in ports and it comes up as a port in ES. Portmaster.zip is on one of the repos iirc
See the portmaster wiki
To whom was that advice? 😛
That's the manual of installing ports yeah
Jeod in relation to ~4PM yesterday
You can always hit reply to a message so the context stays there 🙂
My question atm is what do i need to change in order to change the control mapping for sdl version? Is it something to do with $sdl_controller config?
Can you explain this please. How do I correct the controls (which seem to be rotated)
No idea.
Would it be to do with gamecontrollerdb.txt? I dont really understand those files. I see descent has one as well as portmaster
I guess as descent is my only port I should get another and see if the issue exists only in descent. So I'll get wipeout and see if the issue is still there. Then if it isnt i can just shoehorn the difference somehow? Lol
Grr, msys will not deviate from win32 to crosscompile.
Sdlcontrollerfile tells which button maps to which key
The old one had one that was just a file for ogacontrols
So just named wrongly
scons CXX="C:/Program Files (x86)/Arm GNU Toolchain aarch64-none-elf/13.2 Rel1/bin/aarch64-none-elf-gcc.exe" sdl2=1 sdlmixer=1 opengl=1 TARGET_ARCH='aarch64' PLATFORM='linux'
scons: Reading SConscript files ...
===== D1X-Rebirth v0.61.0 None =====
===== D2X-Rebirth v0.61.0 None =====
DXX-Archive.3: compiling on 'win32'/None for 'win32' into build/
Wat
The controller with that layout gets presented to the game and the game assigns the sdl mappings to its own keys
Thanks. The old one as in the first tester on google drive?
Whatever was on anberports that was then used here
@naive anvil Any time or luck?
Lost a bit of times with the Ken code and some shit for compiling that seems to not work, so nope atm
Nexts days i will surely I found a hole to fill this btw
But dunno when now ahah
sorry but i'm a bit tired, do you needed just a new build or something in particular?
Just an updated build, I can’t get my compiler settings straight
okay, in compiling then
that i did a fast try
i used these setting like up here sdl2=1 sdlmixer=1 opengl=1
btw seems to coompile out of the box for now
But does it run? :p
probably (?)
i mean seems to use sdl2 for a good amount of things
so if they didn't upgrade on the open gl side yeah i guess
Must be nice to have chroots all set up lol
like adding magic shader
that's what i have
literraly 6 commands to have almost everything
beside weird lib used only in winter kek
Maybe I’ll try it again on a vm tomorrow
if this one not works yap
But if your compile runs fine then it’s good for packaging and pr I bet
if there are no new bugs yap
forgot to use -j rip
one core ftw lol
d1x finished btw
👍🏻
Pog
This is for the guidebot in d2. If you free it in a level it’ll guide you to completion.

btw, kinda long as compiling for a similar game
This port in particular though is pretty high end
What’s -j14?
scons -j14 is to compile with 14 core
technically also for just make usually, like make -j14
Thought compilers would know to use all cores
most are set as j4 btw
the problem is that you can't use all the cores
100% crash on itself lol
most of the time, for fast things is usually okayish
also i use 14 core cause i have an old xeon with 24 cores on the mule
probably on the main pc with 16 cores -j14 cause error and shit lot of times
Runs on 351 and savegame bug fixed
Multiplayer looks to be out for now.
out = ??
Yeah all set, just testing some niche things.
I say for now because I host a game on my windows machine and I can't join it on my 351.
But that can be a number of things.
you used rebirth too here?
The rebirth windows build hosted on their website is an older build
So starting there for ver incompatibility
definitely the main problem
Building from source for windows atm
k
Also I did say I don't think it's wise to "support" multiplayer
?
we can remove it i guess, but why?
i mean,works without changes
Also if same build ver is not the issue for connection error.
definitely support it
if it works obv
i mean, if they didn't want ports better have a closed source 
The version is interesting, in the latest windows build from source it's this
No beta2 or any strings after
Tomorrow lel, I need to sleep. Unless you're firing it up right now.
D1X 0.61.0.16 player's game Descent: First Strike 11/25/23 02:04:04
D1X 0.61.0.16 Tyler Descent: First Strike 11/25/23 02:01:10
Well according to the game tracker website at least it's same version
Reminder to self: test issue https://github.com/dxx-rebirth/dxx-rebirth/issues/740 and close if resolved
The above issue is still a thing with aarch, but not present on windows. Also, SConstruct computes the extra version info:
class Git(StaticSubprocess):
class ComputedExtraVersion:
__slots__ = ('describe', 'status', 'diffstat_HEAD', 'revparse_HEAD')
def __init__(self,describe,status,diffstat_HEAD,revparse_HEAD):
self.describe = describe
self.status = status
self.diffstat_HEAD = diffstat_HEAD
self.revparse_HEAD = revparse_HEAD
def __repr__(self):
return f'ComputedExtraVersion({self.describe!r},{self.status!r},{self.diffstat_HEAD!r},{self.revparse_HEAD!r})'
UnknownExtraVersion = (
# If the string is alphanumeric, then `git archive` has rewritten the
# string to be a commit ID. Use that commit ID as a guessed default
# when Git is not available to resolve a current commit ID.
ComputedExtraVersion('$Format:%(describe:tags,abbrev=12)$', None, None, 'archive_$Format:%H$') if '$Format:%H$'.isalnum() else
# Otherwise, assume that this is a checked-in copy.
ComputedExtraVersion(None, None, None, None)
)
I'm not sure why it does this for aarch64 and not windows versions.
Next check maybe on amd64 Linux vs arch
Hey while I've got you, do I need to tick OpenGL: any device with OpenGL, not OpenGLES in json?
I know it builds with opengl=1, but I don't recall if it's a dependency for sdl.
Are you talking about ports.json?
Yeah
Yeah but we use gl4es here
I'm making the packaging part now.
Bugdom for example is one that only runs on mainline Linux with full opengl
Only a handful games are in that category
Cool.
{
"version": 2,
"name": "descent.zip",
"items": [
"descent.sh",
"descent/"
],
"items_opt": [],
"attr": {
"title": "Descent",
"porter": [
"Jeod"
],
"desc": "Play as a mercenary sent into planetary mines to destroy them before a computer virus spreads! You'll fly through 3D mazes in search of keycards to gain access to each level's reactor--which, once destroyed, will begin a self-destruct! Make sure you know where the exit hatch is! It will only open when the reactor is destroyed. Oh, and watch out for those virus-infected robots. They'll shoot at you.\n\nIncludes shareware/demo files. See instructions to use full version.",
"inst": "Ready to play with shareware and demo files. To upgrade to full game, purchase on Steam/GOG and then add .hog and .pig files to descent/data and descent2/data.",
"genres": [
"fps"
],
"image": null,
"rtr": true,
"exp": false,
"runtime": null,
"reqs": []
}
}
This should be fine then.
It's not RTR?
It's RTR with shareware and demo files included.
Oh okay
I'm gonna add more names to the porter section. Was a big job.
The online tool doesn't have a spot for the image. Manually add it I guess.
What changes in https://github.com/JeodC/Portmaster-Descent/blob/main/README.md for packaging? I know the screenshot comes out.
We don't add images in the readme
The main image is generated by the screenshot and auto added to the page at top
Yup
Since DXX-Rebirth is used as the wrapper for the games, you may encounter some bugs in gameplay that are beyond our control. Please use the <a href="https://github.com/dxx-rebirth/dxx-rebirth">DXX-Rebirth Github Repo</a> to track and report issues. Where to put this line? Or toss it entirely?
Well until now at least, @sharp gazelle
Toss it because that applies to all games on portmaster
Sounds perfect, seems you have a hang for writing documentation
Someone like you we need to make the documentation on the website more pretty ^^
I guess when you get a moment if you wouldn't mind glossing over the repo to be sure everything looks ok,
ANYWAY, still need to resolve the version issue since multiplayer won't work with the extraversion tag. Need to test device to device and device to linux.
What's up?
multiplay RG552 vs RG351MP 👍
Excellent! So it's a version problem.
The question is why...
@naive anvil You did pull the newest source? It wasn't something sitting on your HDD from a while back? :v
I made a git clone
So definitely nope
Also because why should I have an old descent on an arm chroot remade 1 month ago?
About the Why?
Cause it's an open source program and Linux has like 717226 more layers than windows on libs in general and graphic libs, it's kinda common to have little different versions.
But for it to be straight up incompatible? No crossplay? That seems...odd.
@inland forge I updated the sdl controls branch with the rebirth builds tekken provided btw
I mean, it's not something made for commercial use
Definitely super mega possible lol
There's no obligation to do anything from their side
Odd?
Absolutely, but it's a hobby, so it surely has imperfections
Sweet. What do I download?
The d1x-rebirth and d2x-rebirth files in descent/ and descent2/
^
So he didn't need to go scroll 10 mins
D1X-Rebirth v0.61 0.60.0-beta2-2701-ga6161c031a5b <-- Port build
D1X-Rebirth v0.61 <-- Windows build
This is normal?
I'm not trying to offend, trying to understand.
But I mean, yeah I guess
That is the result of the git clone, if it's different is due to some system specification
But it's something up to the devs
I don't think it should have any 0.60.0 references if it's v0.61. Weird.
It seems that on Linux they are in an intermediate state between the two simply
Why?
Cause there is probably something that needs to be done on their side on Linux
That makes sense.
I mean, maybe next month if we update is fine
But that's something we can't control too much xD
For example could also be that the SDL2 version is something that tells the program to build "an experimental build"
That works better but is indeed experimental
https://github.com/dxx-rebirth/dxx-rebirth/issues/740#issuecomment-1820981963
This was 4 days ago with no new commits, so versions match up I suppose.
Using SDL 1.2 is definitely not worth it in every case
Not that, I used sdl2 for my windows build.
Yap, Indeed it was just an example, but there could be a lot of variables
instsalled older version on one System. Multiplayer succes with different linux builds.
Lol
So it's just something based on the kind of system it seems lol
Maybe it's just me. I have tmobile home internet with cgnat.
I'd think LAN games would work since it doesn't need to touch the tmobile side though.
But direct connect didn't work either.
Not impossible, these kinds of connections have quite often problems with port forwarding and ip lol
Localhost
Sometimes you can solve with a hotspot, technically the same things ,but the phones seems less picky lol
The long tag in vLKp's comment is 0.60.0-beta2-2701-ga6161c031 and the one we have is 0.60.0-beta2-2701-ga6161c031a5b....the a5b is new.
Like every active open source project is something updated daily lol
No the last commit to rebirth was 2 weeks ago
Probably in a few hours we have another code
So we are fine then 
Sincerely I suggest not thinking too much about the multiplayer thing btw
I mean, the game is fine, updated and seems to work online between our devices
Guess we can consider it complete
I'd like to try connecting to a device outside of LAN out of curiosity. @jovial oriole?
Do I rename so theres no .bin? These are way smaller than the ones i have btw. The ones I have are like ~40mb
Probably not stripped
Lol
These ones were 35 mb
Before strip
Yeah the 1478 commits may have removed a bunch of junk code too.
Name them the same as the older files (?)
Thx
That's not the reason btw ahah
Yup older ones are the same just with no extension
Took out like 5mb in compiling and I guess 1 mb in strip max
tested again between different subnets forwarding udp 42424 work also.
Oh you said stripped and I assumed that's what it meant.
Nope, it's "cleaning" the binary after build let's say
And imagine how much junk there was to start from 35 mb and reach 1 mb final lol
I can think of one more optimization. Do any devices have configurable "player names" already that device_info could grab? Trying to come up with a way to prevent the user from having to manually rename player.plr and player.plx.
Otherwise you'll get this and it'll be harder to distinguish if multiple devices are hosting games.
(It also affects their ingame display name by their ship, won't matter much for coop but for 3+ player games...)
Hmm only thing I see on my rg351 is my screenscraper username lel
Probably best to leave it the way it is
Looks like gptokeyb only allows one textinputpreset, so can't do cheats.
First you need to find a player who even wants to use multiplayer lol
Sure just upload the finished zips here 🙂
That's how we usually do it
Well I would but I broke something because neither game will run
#!/bin/bash
exec >> "/roms/ports/descent/shell.log" 2>&1
if [ -d "/opt/system/Tools/PortMaster/" ]; then
controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
controlfolder="/opt/tools/PortMaster"
else
controlfolder="/roms/ports/PortMaster"
fi
source $controlfolder/control.txt
get_controls
source $controlfolder/device_info.txt
GAME="d1x-rebirth"
GAMEDIR="/$directory/ports/descent"
cd $GAMEDIR
$ESUDO rm -rf ~/.$GAME
ln -sfv $GAMEDIR/conf/.$GAME ~/
export LIBGL_FB=4
export LD_LIBRARY_PATH=$GAMEDIR/libs:/usr/libs
# Edit .cfg file
sed -i "s/^ResolutionX=640/ResolutionX=$DISPLAY_WIDTH/g" $GAMEDIR/conf/.$GAME/descent.cfg
sed -i "s/^ResolutionY=480/ResolutionY=$DISPLAY_HEIGHT/g" $GAMEDIR/conf/.$GAME/descent.cfg
$ESUDO chmod 666 /dev/tty1
$ESUDO chmod 666 /dev/uinput
$GPTOKEYB "$GAME" -c "./descent.gptk" & ./$GAME -hogdir Data 2>&1 | tee -a ./log.txt
$ESUDO kill -9 $(pidof gptokeyb)
$ESUDO systemctl restart oga_events &
printf "\033c" >> /dev/tty1
Looks fine to me though but it doesn't output anything in shell.log
Ok I really need to make Notepad++ default to unix lf
The zip is like 75MB for descent 1
Maybe I should make the script download the addons and shareware files.
Naa. Offline ready ftw
I just tested d1 with tekkenfede's file. What are the differences? apart from the file size (And it saying beta at the bottom. And the different (inferior!) Parallax logo
1400 or so commits of minor bugfixes etc like being able to save your game in d1x using integers
What should be in the contents of markdown/portname.md? Doesn't seem like I should just copy the readme.md from the port folders.
No, there are users without internet
Packages up to 200mb are totally finr
Your readme just named descent.md
That is what is shown in the wiki
I know what to name it I mean the contents.
Default controls I suppose.
## Configuration
You may rename Player.plr and Player.plx in the conf folder for a different multiplayer display name. If you do so, please modify the d1x.ini or d2x.ini file to reflect this change.
## Default Gameplay Controls
| Button | Action |
|--|--|
|A|Primary Fire|
|B|Deploy Bomb|
|X|Secondary Fire|
|Y|Fire Flare|
|L1|Reverse|
|L2|Cycle Secondary Weapon|
|L3|Not Set|
|R1|Accelerate|
|R2|Scroll Primary Weapon|
|R3|Not Set|
|D-PAD UP|Look Up|
|D-PAD DOWN|Look Down|
|D-PAD LEFT|Turn Left|
|D-PAD RIGHT|Turn Right|
|LEFT ANALOG|Look Around|
|RIGHT ANALOG UP|Not Set|
|SELECT|Back / Escape|
|START|Start / Accept / Enter|
## Level Select Controls
| Button | Action |
|--|--|
|B|0|
|Y|1|
|X|2|
|L1|3|
|L2|4|
|R1|5|
|R2|6|
|SELECT+ B|7|
|SELECT + X|8|
|SELECT + Y|9|
## Thanks
Cebion
romadu
Tekkenfede
krishenriksen
Testers and Devs from the PortMaster Discord
Parallax Software
<a href="https://www.dxx-rebirth.com/">DXX-Rebirth</a> Team
Shortened version of readme.md
Guess it's ready. Incoming pull request.
This wiki? https://portmaster.games/wiki.html
Or games.html?
The MD you posted above 1:1
Thought so
Yeah contents show up under Additional Information on a game's page
That's what influenced my choices.
Yep
nah
post the final zip first
lol
madlad
That is the zip the users test here usually
we have to test if the install via pm cli works
zipname ideally lowercase
I did that already.
If you don't use keys in the gptk just delete the entry
It's too big to upload to discord
I want to leave the entries for users who have those buttons though.
Or do you mean for the md?
gptk
Like
# Leave L3 and R3 blank since not available on all supported devices
l3 =
r3 =
In my opionion all comments and extra stuff needs to be out of the gptk
but that's me 🙂
I left those in for users to know they can be mapped if they have the buttons.
This game's one of the more advanced ones in pm. I think the extra comments are warranted.
Besides it works.
this whole block
#GAME SYSTEM KEYS
# Abort Game: Esc
# Show Game Log: Shift-Esc
# Help Menu: F1
# Options Menu: F2
# Save/Load Game: Alt-F2/F3
# Quicksave/Load: Alt-Shift-F2/F3
# Switch Cockpit Modes: F3
# Drop Marker: F4
# Toggle Recording: F5
# Switch HUD Modes: Alt-F7
# Pause: Pause
# Screenshot: Printscreen
# Select Primary Wpn: 1-5
# Select Secondary Wpn: 6-0
# Cycle Left/Right Window: Shift-F1/F2
# Menu Affirmative: Space
# GPtoKeyB Documentation: http://portmaster.games/gptokeyb-documentation.html
###################################```
that has nothing to do in a mapping file
That's all readme stuff
Nah just saying
I didn't put that part in the readme because I don't want to confuse players who aren't gonna dabble in gptk or don't care about the menu stuff.
Descent veterans will probably be the ones looking for these things, so they're in the gptk where it makes sense.
It's just we're trying to keep things simple and a bit uniform. And the mapping file was always just for mapping and any other information we put into the readme
So all keys the device has + mappings
But it's okay for now, 🙂
Thanks for writing it all
If I take it out do I need to resubmit my pr or can I just replace the zip files?
okay
you forgot one thing lol
The PR description
There was a template when you create a new PR
name, url, what devices you tested on
You can add it as a additional comment
Oh lemme go back and edit that
It's just there to know what we're working with and how deep we need to check the package
What would the url be?
atm christian approves mostly the PRs but soon we'll swittch the PM Repo to the Portmaster Org
Rebirth website maybe?
yeah the source the game was compiled from
both are fine
Ok updated pr
Good job
hello guys, I am very hyped to try descent on my "used" ogs, but I already have descent rebirth created on 02.2022
what is this thing?
Where've you been the past week? XD
ah, far from home 😄
The 2022 build was from Anberports. Outdated and pulled from PortMaster a while back.
I see, so better to update
Yep.
DXX-Rebirth dev vLKp requested a test: compile dxx-rebirth for x86-64 linux gnu and place descent.hog, descent.pig, and d1x-music-sc55.dxa in d2x-rebirth/data and see if music plays when running the mission Descent: First Strike. On aarch64 (this port), music does not work. Rebirth dev is looking to find out if it's an aarch64 unique thing.
Completely optional, test not needed for port.
I just nailed the first 2 missions on ace with this. (Descent 1). All can be flipped left to right ofc:
Accel/reverse on r2/r1
bank left and right is on both sides. On dpadleft/dpadright respectively, AND on west/east face buttons
Left stick: pitch and turn
Right stick: slide up/down/left/right
Dpad down:flare
Dpad up: rear view
Automap: select
Menu:start
Buttons 1 and 2 on Chi: cycle primary and secondary weapons
North face button: slide on
South face button: bomb
Hahaha there's a bug in d1x where the spiderbot spawns green claws instead of baby spiders
Good luck on Ace when you hit Level 6 @inland forge
Aaand pr merged!
Tfw there’s a typo in the controls table in the md
“RIGHT ANALOG UP”
Ah well I’ll update it when we add a new rebirth build
Awesome!
Congrats on the release 🥳
Hmm.. i downloaded both descent games and i istalled the datafiles from my previous versions to those but now both are not booting. So do i need different datafiles than before they needed?
Check the log
Well did you read it?
Could not find a valid hog file (descent.hog)
Possible locations are:
$HOME/.d1x-rebirth
/usr/local/share/games/d1x-rebirth/
In a subdirectory called 'data'
Or use the -hogdir option to specify an alternate
Yeb
So where is your descent.hog?
But i have it on data. Just like it was in older version
Show me 🙂
folder needs to be named Data
Then the error is in the descent file itself
👌
Yes it did! 👌
Oh but descent 2 has somethig else
Game boots but after i see descent 2 logo it goes back to ports menu
@stable kayak you might want to fix that typo 😛
Log 🙂
Problem is windows doesn’t care about case sensitivity so it won’t force lowercase even when you tell it to
Indeed but your script it says hogdir Data and in the zip is a data folder
@unborn chasm Oh descent 2 works. I just forgot to copy ALL the files i needed 🤣
Oh and Descent 2 .sh also has the Data typo
Wonder why it worked at all lol maybe the game searched all subdirectories
@unborn chasm oh and check out my miracle in portmaster. 😄
Ah yeah
Read again
Could not find a valid hog file (descent.hog)
Possible locations are:
$HOME/.d1x-rebirth
/usr/local/share/games/d1x-rebirth/
In a subdirectory called 'data'
Or use the -hogdir option to specify an alternate
It says the Data dir that was given by the .sh is invalid
And that he looked in home, usr/share and subdirectory data
The really odd thing is, it's been running fine on my 351.
So it takes a bit longer to track it down, but it will find it. At least the port isn't broken somehow.
I fixed the typo for next version.
I’ve been spending some free time looking over dxx source to try to find the spider bot issue. No luck so far.
Green claw bot has a robot id of 1 and baby spiders have a robot id of 14. I’m sure the value is being truncated somewhere.
Hmmmmmmm
Only occurs in d1x and only d1x uses (void)robot_info
Probably off track
Looks like christian's prebuilt vm has an old gcc version.
btw yeah
should be 2 version before the needed for various port
@naive anvil What compile issue do you get?
a . placed where he doesn't like it
that said, got a few problems at works these day that drained my energies
haven't checked yet how stupid it is
- Install WSL and Ubuntu 20.04 2. Add Debian chroots: https://github.com/christianhaitian/arkos/wiki/Building#to-create-debian-based-chroots-in-a-linux-environment 3. Enter chroot via sudo chroot ...
@naive anvil May have fixed it but can’t test tonight
Descent is a very cool fps game. Played a lot in my youth. Multiplayer deathmatch on Minerva custom map is awesome.
Still about this port: How could we allow for having real joystick support? I mean, having real analog sensitivity when moving/aiming would improve gameplay for a bit, mostly when aiming targets.
A couple of months ago, I tried windows version, with a GameCube controller. Managed to configure all analog sticks with sensitivity support. But in my RG351p, it seems the control bindings were done fully through gptk, mapping keys and mouse buttons to controller buttons.
It works fine, but real joystick support would be even better.
Real joystick support would be a chore especially since there are so many different devices. The Chi for example has a different axis orientation than Anbernic devices.
It’s not something I’m particularly interested in pursuing since I only own one device. I’d prefer users use the gptokeyb dead zone options.
By all means feel free up make a fork for sdl controls.
Cebion mentioned these days about a functionality that kinda allows using gptk to make the device controller behave as if it was a xbox360 controller.
Something like that would possibly allow for multiple devices to have the same button mappings.
It should allow us to have analog support for multiple devices, at least in theory. Haven't gone practical, though.
I think that feature is still prerelease iirc
You can add xbox360 as an argument in descent.sh if you want to try it out:
$GPTOKEYB "$GAME" -c "./descent.gptk" xbox360 & ./$GAME -hogdir data 2>&1 | tee -a ./log.txt
Cool. I'll try it when I have some spare time.
The issue is it will still use the gptk file and the default player profile is configured for kbm gptk
You'd need to adjust more to make it work well enough
I can't find documentation on what exactly the xbox360 command line argument does.
<@&1123159718874058882> A new dxx-rebirth build is available and has been pushed to https://github.com/JeodC/Portmaster-Descent. Please update your d1x-rebirth and d2x-rebirth files in ports/descent and ports/descent2 and test functionality. On my rg351 amberelec the games boot and run as expected. The new build has >20 commits since November. I would like it tested before pushing to Portmaster. If you wish you can also download the entire port again to gain cheats functionality. See the readme.md for instructions.
./d1x-rebirth: /lib/aarch64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by ./d1x-rebirth) ./d1x-rebirth: /lib/aarch64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by ./d1x-rebirth)
./d1x-rebirth: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./d1x-rebirth)
classic arkos library shennanigans
I have an option to remove a clause to make it compile in gcc10, but I’d really rather not. When is arkos planning on updating their glib?
Never
#1163430964299583518 message
wELP
No arkos then
How shall I redo the packaging to indicate no arkos support then?
I suppose we will need a compatibility flag on the port json.
Don't have the flag yet and you have to consider if the update is worth it because like half of all devices are ark or if it can be compiled in a different way, didn't Tekken compile it with a older machine?
Also a thing of is the update significant enough to drop devices
Also i pretty much exclusively use ArkOS 😄
I told ya that bookworm cause this usually ahah
Seems they changed some little shit in the meantime.
Probably with a bit of cherry picking of the commits we can compile an updated version that works fine
Like 60% of the community unironically
doesnt help that those cheap R3*S clones are very popular and they come with Arkos as stock
Indeed the primary issue was the spider bots not dropping correctly, could cherry pick that commit alone.
I mean, the game technically works fine also without the updates, so definitely is an idea
This too lol
I thought it over and I think instead of limiting the port for compatibility for one OS I would rather fork rebirth and have a "compatibility source" that users can build themselves.
Otherwise the maintainer may go "hurr you need to update gcc for these fixes/features" and pull support.
Maybe not sure if feasible we could have an alternative package. Like compatibility version for devices xy
So ark would get old stable version y and all others the new one
It would mean multiplayer breaks between the versions as well.
Isn't arkos being maintained by community?
Nope, by one person 🙂
Christian
But it's open source isn't it?
Kinda yeah
Wonder how difficult it would be to update glibc there
Thing is updating system libs is a major pita xD
I assumed so or he'd have already done it
And can break everything
Thing is I'm sure more and more ports will require modernization as newer devices are released.
ArkOS will at some point become a thing of the past unless it becomes community driven.
So, if I'm going to drop ArkOS support and push this updated build, how should I package it?
Same as usual but with a flag that doesn't exist yet in json
Which is...?
Which is not implemented yet, does not exist
Not invented lol
I know but IF IT DID, what would it look like? XD
I don't suppose I can just slap a glibc version in the port libs folder either.
## Compatibility
ArkOS is NOT compatible with this port. Users will encounter the following error on attempting to run:
./d1x-rebirth: /lib/aarch64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by ./d1x-rebirth)
./d1x-rebirth: /lib/aarch64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by ./d1x-rebirth)
./d1x-rebirth: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./d1x-rebirth)
ArkOS only uses up to GLIBC 2.30 and as ArkOS is no longer maintained, this port is not compatible.
Blurb in readme will have to suffice.
@naive anvil Do you recall the last commit you used to build last month? Need to trace in https://github.com/dxx-rebirth/dxx-rebirth/commits/master/ to see about building a dxx-rebirth compatibility version and redirect to that in the sh.
I can probably check from some log
According to my first issue made with them it's https://github.com/dxx-rebirth/dxx-rebirth/commit/a6161c031a5b659073695138d2d848b831720078 but I want to be accurate. Once I have that I can narrow down where exactly glibc gets updated.
If glibc is tied to gcc then it's probably somewhere around https://github.com/dxx-rebirth/dxx-rebirth/commit/b78815e6a6cb873a1d41e91206e6930494acc3c8 which is where gcc-10 support was dropped.
In simpler terms looks like the Nov 11 commit batch was used.
Something like need glibc version >
I brought it up to vLKp https://github.com/dxx-rebirth/dxx-rebirth/issues/745#issuecomment-1873014646, maybe there is an easier way to build for compatibility. Or maybe he'll add something for it.
Welp, there’s a new comment that I don’t quite understand. 
I don't have arkos so I'll need someone else to try it when it's done, but I'm recompiling with scons sdl2=1 sdlmixer=1 opengl=1 LINKFLAGS='-lstdc++' for dynamic linking.
Still the same
Bummer
hmm, I have retrooz (old arkos) and version of descent 1 and 2 from portmaster. descent 1 works perfect, but 2 fall back to ES almost immediately. I was sure that they have same engine 😔
The executables are different, so definitely not the same engine 1:1
need to try ssh, as usual
Yeah, ssh always gives answers
I'm working on it: https://github.com/JeodC/dxx-rebirth-compat/actions
oh, portmaster contains latest version that is not compatible with arkos ? I thought I pumped older version (i hoped). then waiting for a fix
Portmaster one is fine
No, I haven't updated portmaster yet
Last one has a problem with arkos due to being build on bookworm chroot
The main problem is that retroz is like giving support to Uos, could be a way older lib the problem or anything else.
yep, I will check terminal as soon as son fall asleep, but I believe nothing can be fixed anyway
If all goes well here I may have a compatibility version from forked source.
I don't think there are any features left to add, just code optimizations for modern standards, so shouldn't be a big issue being compat mode. Only problem might be multiplayer breaking due to commit hash differences.
Yeah, but probably on retro-oz not works the same
Btw
researched a bit and most often the answer is
So ubuntu 20.04 in this case 😛 not sure which the last debian version is
Yeah ofc but dxx-rebirth doesn't want to support older versions.
I have a fork that builds successfully via docker (github actions) but I have yet to figure out how to get the binaries (or even the docker image).
I wanted to build through github actions to more easily change source code.
But what did Tekken build on? Have they removed support since the last time it was built? And do these updates have any benefits of the current build?
You clearly haven't kept up with the issue links I provided. :p
Nope 😛
I saw the one about compiling
But not what errors we have in the current build
An error in a header file that uses a requires clause in two places, which gcc-10 doesn't appear to fully support.
I removed the clauses in my fork so I'm building in wsl currently to see if it works in arkos.
...and elsewhere since I have no idea what commenting out these clauses might do.
I was able to resolve the issue by explicitly commenting out the following in valptridx.h:
ptr(allow_none_construction)
// Remove the requires clause for gcc-10 compatibility
/* requires(
!allow_nullptr // allow_none_construction is only needed where nullptr is not already legal
) */
:
m_ptr(nullptr)
{
}
template <typename rpolicy>
ptr(ptr<rpolicy> &&rhs, const typename containing_type::rebind_policy *)
// Remove the requires clause for gcc-10 compatibility
/* requires(
allow_nullptr || !rhs.allow_nullptr // cannot rebind from allow_invalid to require_valid
) */
:
m_ptr{const_cast<managed_type *>(rhs.get_unchecked_pointer())}
{
}
I'm wondering if this will have any runtime implications. I'm not too familiar with c++ code, so I am unsure what this clause is supposed to do and what errors might come up with it left out.
It fixes a bug where a kind of robot (baby spider) was literally never used.
Normally you'd kill a spider robot and it would explode into 3-4 baby spider robots.
Instead it exploded into 3-4 big green claw robots. Made zero sense.
I'll try to compile it on a test machine of mine I'm working on
Dw I'm already compiling.
D2X-Rebirth v0.61 0.60.0-beta2-2701-ga6161c031a5b Nov 25 2023 01:34:09
This is a MODIFIED version of Descent 2, based on Full Version v1.2.
Copyright (C) 1994-1996 Parallax Software Corporation
DESCENT is a trademark of Interplay Productions, Inc.
Copyright (C) 1999 Peter Hawkins, 2002 Bradley Bell, 2005-2013 Christian Beckhaeuser, 2013-2017 Kp
Using SDL_mixer library v2.0.4
file /dev/mali0 is not of a compatible version (user 10.6, kernel 11.7)
file /dev/mali0 is not of a compatible version (user 10.6, kernel 11.7)
Failed creating base context during opening of kernel driver.
Kernel module may not have been loaded
DXX-Rebirth: OpenGL: disabling automatic GL sync since VSync is turned off
Failed to open movielib <intro-h.mvl>: not found
Failed to open movielib <intro-l.mvl>: not found
Failed to open movielib <other-h.mvl>: not found
Failed to open movielib <other-l.mvl>: not found
Failed to open movie <intro.mve>: not found
Failed to open movie <titles.mve>: not found
similar/main/piggy.cpp:1099: read_sndfile: error: Cannot open sound file: descent2.s22: not found
That's user error
absence of video files?
That's weird, the shareware files shouldn't need those things.
Ah so you ARE trying to use the full version.
ok I will delete folder and try shareware
The readme tells you what files you need to copy over from full ver.
To upgrade to full game, purchase on Steam/GOG and then add .hog and .pig files to ports/descent2/data.
that is what I did, but anyway
The readme inside the descent2 folder
oh, got it!
Unzip to ports folder e.g. ```/roms/ports/```. Ready to play with shareware and demo files. To upgrade to full game, purchase on Steam/GOG and then add .hog and .pig files to descent/data and descent2/data.
Filelist for full versions:
├── descent/data
│ ├── missions/
│ │ └── bonuscontent
│ └── descent.hog
│ └── descent.pig
│ └── chaos.hog (multiplayer, optional)
│ └── chaos.msn (multiplayer, optional)
├── descent2/data
│ ├── missions/
│ │ └── bonuscontent
│ └── alien1.pig
│ └── alien2.pig
│ └── descent2.ham
│ └── descent2.hog
│ └── descent2.s11
│ └── descent2.s22
│ └── fire.pig
│ └── groupa.pig
│ └── ice.pig
│ └── water.pig
│ └── intro-h.mvl (optional)
│ └── other-h.mvl (optional)
│ └── robots-h.mvl (optional)
│ └── d2x-h.mvl (optional)
I cheched portmaset.games desciption
Yeah the filelist is too long for a json for my taste
I'll have a new version for arkos testing up in a few
text is too small in portmaster version, hope it has fix in new 🙂
What device you using?
Open up the ini file and put a semicolon in front of -gl_fixedfont ;Don't scale fonts to current resolution
nice
Text was too big and blurry on rg351p and other devices tested so used fixed font by default.
i see, ini file in descent 2 folder?
ArkOS test
Runs fine on rg351 amber
I have a second sd card, where do I install arkos? I think I'm not supposed to use the "final" build?
Ok final then update to wummle fork
I remember now
new bin for descent 2 works fine
this is success, as I have retrooz - most outdated arkos possible
i will try now
yep, descent 1 is good too
now I am fully charged for new year trip
I'll push to pm then
If you want to use cheats use my github repo
I don't expect pm to add pr before 48 hours
no the new repo is not live yet
75% done
the new readme was released just recently with how to submit and what changed
Oh I submitted to both old and new
Since it's in prerelease maybe you can just shoehorn it in
https://github.com/JeodC/Portmaster-Descent @sterile bridge
ok thanks! I will stick to portmaster version with updated bin
cheats are for the weak
I mean, it's going to have both
You can turn them all off easily.
Hm ok new descent is not booting on arkos wummle update. No log so it's a sh issue.
Or a portmaster issue. Trying descent2 from pm.
That boots
So what broke...
check permissions
You're gonna have to walk me through that, I never use arkos.
ark is really weird with permissions like missing executable rights, no read rights on the files
I just need a better log to see what it wants.
If I ssh will it output to my console?
usually it tells you if yoyu start via ssh
Alr
or try to start the binary directly
yes
ark@rg351p:/opt$ ls
351Files bootscripts drastic fake08 inttools mvem ppsspp retroarch system
amiberry cmds ecwolf gzdoom lzdoom OpenBor ppssppgo scummvm ti99sim
asciis dingux elysian hypseus mupen64plus pico-8 quitter solarus VVVVVV
Quick get me to the ports folder
cd /roms/ports/
it's the same on all cfws or most
Derp
Ok, how to start the sh
ark@rg351p:/roms/ports$ ls
2048.sh descent doom2 Half-Life.sh 'Rick Dangerous.sh' soniccd
cannonball descent2 'Doom 2.sh' opentyrian sdlpop 'Sonic CD.sh'
Cannonball.sh 'Descent 2.sh' Doom.sh OpenTyrian.sh SDLPoP.sh VVVVVV
cavestory Descent.sh ecwolf quake sonic1 VVVVVV.sh
'Cave Story.sh' devilution gamelist.xml quake2 'Sonic 1.sh' 'Wolfenstein 3D.sh'
cgenius Devilutionx.sh gamelist.xml.old 'Quake 2.sh' sonic2 xrick
'Commander Genius.sh' doom Half-Life Quake.sh 'Sonic 2.sh'
And why are some of these in single quotes and some are not?
Wouldn't you know it Notepad++ decided they should be CR LF again
Ok both boot on latest ark too
Marking this finished again
What changed so that it works now?
I was able to resolve the issue by explicitly commenting out the following in valptridx.h:
ptr(allow_none_construction)
// Remove the requires clause for gcc-10 compatibility
/* requires(
!allow_nullptr // allow_none_construction is only needed where nullptr is not already legal
) */
:
m_ptr(nullptr)
{
}
template <typename rpolicy>
ptr(ptr<rpolicy> &&rhs, const typename containing_type::rebind_policy *)
// Remove the requires clause for gcc-10 compatibility
/* requires(
allow_nullptr || !rhs.allow_nullptr // cannot rebind from allow_invalid to require_valid
) */
:
m_ptr{const_cast<managed_type *>(rhs.get_unchecked_pointer())}
{
}
I'm wondering if this will have any runtime implications. I'm not too familiar with c++ code, so I am unsure what this clause is supposed to do and what errors might come up with it left out.
I changed the source code in my fork dxx-rebirth-compat and built
i meant in ark
sorry
#1175040525745803264 message
Notepad++ changed the .sh files on me at some point probably back when I added the cheats stuff.
oh i read that as a question
😛
Like I wonder if
Microsoft got their sticky fingers in everything
I have updated both zips in https://github.com/JeodC/PortMaster for the pr if anyone wants to test fresh zip
Tell us
Buncha addons like ps1 levels and music
Some of them are big files and I'm not sure what each one is, so I'm gonna download and test each of them and add an Addons section to the readme.
I do.
Looks like most of these are different soundcard midi options for that really authentic feel.
Rangers Anarchy Mission Pack
Rangers Co-op Mission Pack
Descent Championship Ladder Mission Pack
SC-55 MIDI soundtrack
OPL3 MIDI soundtrack
AWE32 MIDI soundtrack
AWE64 MIDI soundtrack
Ensoniq 2M MIDI soundtrack
Ensoniq 8m MIDI soundtrack
Roland SC MIDI soundtrack
Finn's MIDI soundtrack
Mac Redbook soundtrack
PS1 soundtrack
German briefings
Descent 2 Maximum (PS1 conversion with 30 altered levels)
Rangers Anarchy Mission Pack
Rangers Co-op Mission Pack
Descent Championship Ladder Mission Pack
SC-55 MIDI soundtrack
OPL3 MIDI soundtrack
AWE32 MIDI soundtrack
AWE64 MIDI soundtrack
Ensoniq 2M MIDI soundtrack
Ensoniq 8m MIDI soundtrack
Roland SC MIDI soundtrack
Finn's MIDI soundtrack
Mac Redbook soundtrack
PS1 soundtrack
The Definitive Collection Redbook soundtrack
German briefings```
@paper quest will probably enjoy this.
I only played it on Windows 95 so I just threw in the sc55 since it was the most familiar. I didn't know these existed.
At the time of Descent 2's release, Sony had a "no pc ports" policy, so Descent 2 had to be redesigned. It was renamed Descent Maximum and had some smaller, changed levels due to limitations.
dxa files are just zip files so you can open them up easily and listen to find which you prefer
d1/2 are AMAZING on OPL2
@unborn chasm do you have any suggestions on how I should make end users aware? I can host addons on my github for this port easily, but I'm not certain if that's an "ok" thing to do to include the repo in the readme.
I don'T see why linking to some addons should not be okay
Well it's not its own repo
I just added them to https://github.com/JeodC/Portmaster-Descent which I also use for testing things before pushing to pm release.
We do have it. Scroll way up lol. And you're right it's freaking awesome
Luckily the sticks axes are fully mappable to in game actions so this isn't an issue. The only minor thing is in the menu left and right is scroll up/down (@Solid One).
I read that menu joystick controls wasnt a thing in rebirth and wasnt planned. Albeit an old post. (By rebirth devs). So wondering if that bit was tacked on with the anberport anyway
The name was descent ii in pal land
Is it a new feature, from the latest update submitted by Jeod?
No it's from before the gptk version
Jeod kept it as "sdl controls branch" iirc
Ignore description (copy and paste). But sdl version has working sticks. (Not for everyone apparently )
Wait. I only see main @stable kayak
Where is sdl controls version?
Removed. I believe I commented at one point that it would be better for you to fork it than for me to maintain a branch.
Lol. True. Idk wtf I'm doing tho or even how to fork it. I thought tek was going to do it 😅
You shouldn’t assume such things. He’s likely very pleased that I didn’t depend on him for building the update.
It’s just a few lines edit in your sh file
I would love to figure out how docker works so I can make a GitHub action to auto build new commits. Alas, yesterday a build was successful but I was unable to find how to get it out of the docker image (and even get the docker image itself).
It’s just faster and easier to build with wsl at the moment and the repo has a build guide
Scp to the device?
It’s within GitHub actions afaik so it’s limiting somewhat. I haven’t explored the docker hub software yet.
Ah ok
Never got it fully functional and I don’t think there’s any reason to do auto builds other than learning experience.
The port probably won’t need further updates.
That said there are two other containers that I know of: DXX-Retro and DXX-Redux. I don’t know what the differences are.
Is it me or are some sfx louder than others?
Eg?
I was playing Descent 2 and some of the laser and explosion sounds seemed louder than others.
Idk. You tried it in mono?
I get a good stereo surround effect but idk why that would affect your own laser
Unless echoes or something. I didnt know it was that advanced tho
Could also be the kind of speaker who emphasizes more frequencies than others due to the mixing
Maybe, if nobody else gets it. It almost sounds like sfx are having duplicate playback.
So rebirth supports using joystick and kbm in parallel, so technically it should be possible to use native sdl controls ONLY for the analog sticks. Just need a way to disable all other sdl controls.
Once that control is in place end users could just tick the "enable joystick" box in options.
Would be no need to split builds.
@unborn chasm The source $controlfolder/control.txt line in sh files is for sdl controls yes?
So it isn't needed if not using sdl controls anyway.
is needed for gptokeyb also
Couldn't I just do a controls.txt file like:
left_analog_up = \"
left_analog_down = \"
left_analog_left = \"
left_analog_right = \"
right_analog_up = \"
right_analog_down = \"
right_analog_left = \"
right_analog_right = \"
To only use analog sdl and leave buttons to gptk?
sure
I did that and added $GPTOKEYB "$GAME" -c "./descent.gptk" & SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig" ./$GAME -hogdir data 2>&1 | tee -a ./log.txt and it does nothing.
I wonder if I missed something
gamecontrollerdb.txt:
up = up
down = down
left = left
right = right
left_analog_up = up
left_analog_down = down
left_analog_left = left
left_analog_right = right
right_analog_up = up
right_analog_down = down
right_analog_left = left
right_analog_right = right
uhm
what's that?
That looks like a remap file for oga_controls
a gamecontrollerdb.txt file looks like this
oga_controls (the one used in the old descent version) just borrowed the name
I went off what anberports had
How do I set up sdl controls properly then?
Weebsite has no doc for that unlike gptokeyb
sdl controls are handled from the game
the sdl config file tells which buttons on the device correspond to which sdl joy button
but the game needs to tell what button it wants to use for what
and gptokeyb just converts keyboard keys to sdl buttons
SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig" in sh is correct then but the gamecontrollerdb.txt file is not
yeah but this is for the sdl config file has nothing to do with the game
it's so the game can find it if it wants
So I need to use the oga controls?
no, oga controls has the same functionality as gptokeyb just less features
this #1175040525745803264 message
is already correct
if you want that the game handles it you have to uncomment the bindings like you did
gptokeyb won't touch it then
and then its up to the game to detect the joystick and use the buttons
usually in the config files
Ok I made that edit but the analog sticks still do nothing.
maybe removed the joystick mappings in the games config files?
No I just disabled joystick in options
I re-enabled it but nothing
Ah could be the ini file
Ok, fixed. But, d-pad still double mapped.
Even with
up = \"
down = \"
left = \"
right = \"
left_analog_up = \"
left_analog_down = \"
left_analog_left = \"
left_analog_right = \"
right_analog_up = \"
right_analog_down = \"
right_analog_left = \"
right_analog_right = \"
Hmm
gptokeyb shouldn't be touching them, so why are they double mapped...
Either a old gptokeyb instance is still open
to test you can comment out gptokeyb
What does the current sh look like?
Oh I don't think I shut gptokeyb down or anything in the sh
#!/bin/bash
if [ -d "/opt/system/Tools/PortMaster/" ]; then
controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
controlfolder="/opt/tools/PortMaster"
else
controlfolder="/roms/ports/PortMaster"
fi
source $controlfolder/control.txt
get_controls
source $controlfolder/device_info.txt
GAME="d1x-rebirth"
GAMEDIR="/$directory/ports/descent"
cd $GAMEDIR
$ESUDO rm -rf ~/.$GAME
ln -sfv $GAMEDIR/conf/.$GAME ~/
export LIBGL_FB=4
export LD_LIBRARY_PATH=$GAMEDIR/libs:/usr/libs
# Add some cheats
if [ ! -f "./cheats.txt" ]; then
echo "Error: Cheats file not found. No cheats will be used." > /dev/tty0
else
CHEATS=$(sed -n -E '/^[^#]*=[[:space:]]*1([^0-9#]|$)/s/(=[[:space:]]*1[^0-9#]*)//p' ./cheats.txt | tr -d '\n')
fi
export TEXTINPUTPRESET=$CHEATS
# Edit .cfg file to correct resolution
sed -i "s/^ResolutionX=640/ResolutionX=$DISPLAY_WIDTH/g" $GAMEDIR/conf/.$GAME/descent.cfg
sed -i "s/^ResolutionY=480/ResolutionY=$DISPLAY_HEIGHT/g" $GAMEDIR/conf/.$GAME/descent.cfg
# Run the game
$ESUDO chmod 666 /dev/tty1
$ESUDO chmod 666 /dev/uinput
$GPTOKEYB "$GAME" -c "./descent.gptk" & SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig" ./$GAME -hogdir data 2>&1 | tee -a ./log.txt
$ESUDO kill -9 $(pidof gptokeyb)
$ESUDO systemctl restart oga_events &
printf "\033c" >> /dev/tty1
Nvm I do kill
and descent.gptk was the one above right?
No the gptk is unchanged
What does the descent.gptk look like?
#GAME SYSTEM KEYS
# Abort Game: Esc
# Show Game Log: Shift-Esc
# Help Menu: F1
# Options Menu: F2
# Save/Load Game: Alt-F2/F3
# Quicksave/Load: Alt-Shift-F2/F3
# Switch Cockpit Modes: F3
# Drop Marker: F4
# Toggle Recording: F5
# Switch HUD Modes: Alt-F7
# Pause: Pause
# Screenshot: Printscreen
# Select Primary Wpn: 1-5
# Select Secondary Wpn: 6-0
# Cycle Left/Right Window: Shift-F1/F2
# Menu Affirmative: Space
# GPtoKeyB Documentation: http://portmaster.games/gptokeyb-documentation.html
###################################
# Universal controls, needed for menu -- DO NOT CHANGE
back = esc
start = enter
up = up
down = down
left = left
right = right
a = space
# Assigning integer keys to remaining universal buttons
b = 0
y = 1
x = 2
l1 = 3
l2 = 4
r1 = 5
r2 = 6
b_hk = 7
x_hk = 8
y_hk = 9
# Leave L3 and R3 blank since not available on all supported devices
l3 =
r3 =
# Use mouse movement for left analog stick
left_analog_up = mouse_movement_up
left_analog_down = mouse_movement_down
left_analog_left = mouse_movement_left
left_analog_right = mouse_movement_right
right_analog_up = up
right_analog_down = down
right_analog_left = left
right_analog_right = right
Mouse is disabled in game options
But d-pad and analog both double mapped
gamecontrollerdb.txt
up = \"
down = \"
left = \"
right = \"
left_analog_up = \"
left_analog_down = \"
left_analog_left = \"
left_analog_right = \"
right_analog_up = \"
right_analog_down = \"
right_analog_left = \"
right_analog_right = \"
Okay, so you have dpad mapped
forget about the gamecontrollerdb.txt
delete that 😄
That's only for oga_controls
No wonder it won't work
This is what counts -c "./descent.gptk
I want the player to be able to disable mouse and enable joystick
So if I comment out d-pad, might be ok
You could do a if this then that before starting the game and load different gptk and ini files for example
Nope, comment out d-pad and analog and it's still doulbe mapped
Remember I'm trying to do a hybrid control scheme here
can you post the modified gptk please?
# Universal controls, needed for menu -- DO NOT CHANGE
back = esc
start = enter
#up = up
#down = down
#left = left
#right = right
a = space
# Assigning integer keys to remaining universal buttons
b = 0
y = 1
x = 2
l1 = 3
l2 = 4
r1 = 5
r2 = 6
b_hk = 7
x_hk = 8
y_hk = 9
# Leave L3 and R3 blank since not available on all supported devices
l3 =
r3 =
# Use mouse movement for left analog stick
left_analog_up = mouse_movement_up
left_analog_down = mouse_movement_down
left_analog_left = mouse_movement_left
left_analog_right = mouse_movement_right
#right_analog_up = up
#right_analog_down = down
#right_analog_left = left
#right_analog_right = right
#down = down
#left = left
#right = right```
hashtag comments out yes?
discord is fucking
😄
\"
😄
or delete them alltogether
thing is the gptk file is no bash file so normal rules do not necessary apply 😛
The problem with removing them is if player opts to not use joystick
Then it relies on gptk with missing controls
I suppose the solution is to test removing and if works use if clause in sh file by checking ini file for joystick enabled
But that ain't it, the d-pad is still double mapped
Even with it all removed
Works when # $GPTOKEYB "$GAME" -c "./descent.gptk" &
try rebooting
or do a # up instead of #up
But as i said you can always just use a 2nd gptk file
we did this in the past with devices that had only one analogue stick for example
Nah reboot still double
Works when I remove -c "./descent.gptk" &
Still initializing gptkyeb
Yup
still?
Same
copy it away and put a empty gptk file
That's not right
Dunno what to tell you. That's how it is.
It's even doing it when I do $GPTOKEYB "$GAME" xbox360 &
so you have $GPTOKEYB "$GAME" -c "./empty.gptk" &
So the only thing that comes to my mind would be the game config files.
Where sdl dpad buttons are mapped double
gptokeyb has no logic to assign keyboard keys without an input file
Let me make a fresh pilot then so game uses defaults
it will also tell you at the start of the game using config file xy
Hmm new pilot same thing
Time to share the package so i can test 😛
Let me make a sdl_controls branch again in github, gimme a min
I only test in Descent 1 for now
End goal is to use hybrid control scheme and let player decide to use mouse controls or joystick controls while keeping keyboard gptk to button maps the same
Could it be the cheats....?
Start_D-Pad Left
Nope, commented that export and same thing
started it before your files then after
before:
LIBGL: FBO workaround for using binded texture enabled
LIBGL: Force texture for Attachment color0 on FBO
LIBGL: Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done
LIBGL: glX Will try to recycle EGL Surface
LIBGL: Current folder is:/storage/roms/ports/descent
Type './d1x-rebirth -help' for a list of command-line options.
D1X-Rebirth v0.61 0.60.0-beta2-1223-gcf888df45798 Mar 25 2021 15:51:24
This is a MODIFIED version of Descent, based on Registered v1.5 Jan 5, 1996.
Copyright (c) 1994 Parallax Software Corporation
DESCENT is a trademark of Interplay Productions, Inc.
Copyright (C) 2005-2013 Christian Beckhaeuser, 2013-2017 Kp
Running in Fake Keyboard mode
Using ConfigFile ./descent.gptk
fscanf(): Success
Joystick 0 has game controller name 'OpenSimHardware OSH PB Controller'
Using SDL_mixer library v2.6.2
DXX-Rebirth: OpenGL: disabling automatic GL sync since VSync is turned off
/usr/bin/show_splash.sh: line 105: syntax error: unexpected end of file
LIBGL: Shuting down
after:
LIBGL: FBO workaround for using binded texture enabled
LIBGL: Force texture for Attachment color0 on FBO
LIBGL: Hack to trigger a SwapBuffers when a Full Framebuffer Blit on default FBO is done
LIBGL: glX Will try to recycle EGL Surface
LIBGL: Current folder is:/storage/roms/ports/descent
Type './d1x-rebirth -help' for a list of command-line options.
D1X-Rebirth v0.61 Jan 1 2024 18:47:57
This is a MODIFIED version of Descent, based on Registered v1.5 Jan 5, 1996.
Copyright (c) 1994 Parallax Software Corporation
DESCENT is a trademark of Interplay Productions, Inc.
Copyright (C) 2005-2013 Christian Beckhaeuser, 2013-2017 Kp
Using SDL_mixer library v2.6.2
Running in Fake Keyboard mode
Using ConfigFile ./descent.gptk
fscanf(): Success
Joystick 0 has game controller name 'OpenSimHardware OSH PB Controller'
sdl-joystick: 1 joysticks
sdl-joystick 0: OpenSimHardware OSH PB Controller
sdl-joystick: 4 axes
Warning: sdl-joystick: found 193 buttons, only 128 supported.
sdl-joystick: 1 hats
sdl-joystick: 4 axes (total)
sdl-joystick: 140 buttons (total)
DXX-Rebirth: OpenGL: disabling automatic GL sync since VSync is turned off
/usr/bin/show_splash.sh: line 105: syntax error: unexpected end of file
LIBGL: Shuting down
it looks like it finds two joysticks
How?
In the before, is joystick disabled in the ini file?
D1X-Rebirth v0.61 Jan 1 2024 18:47:57
This is a MODIFIED version of Descent, based on Registered v1.5 Jan 5, 1996.
Copyright (C) 1994, 1995 Parallax Software Corporation
DESCENT is a trademark of Interplay Productions, Inc.
Copyright (C) 2005-2013 Christian Beckhaeuser, 2013-2017 Kp
Using SDL_mixer library v2.6.2
sdl-joystick: 1 joysticks
sdl-joystick 0: OpenSimHardware OSH PB Controller
sdl-joystick: 4 axes
Warning: sdl-joystick: found 193 buttons, only 128 supported.
sdl-joystick: 1 hats
sdl-joystick: 4 axes (total)
sdl-joystick: 140 buttons (total)
DXX-Rebirth: OpenGL: disabling automatic GL sync since VSync is turned off
LIBGL: Shuting down
My log
the fuck is going on 😄
so i deleted all config files / conf folder
everything
and if i do $GPTOKEYB "$GAME" & #-c "blank.gptk" &
it works
maybe there is a fallback
There's the plx file and the descent.cfg file but neither of them have control options other than keyboard assignments
This is mine:
[D1X Options]
[weapon reorder]
primary=0x4,0x3,0x2,0x1,0x0,0xff
secondary=0x4,0x3,0x1,0x0,0xff,0x2
[end]
[keyboard]
sensitivity0=16
sensitivity1=16
sensitivity2=16
sensitivity3=16
sensitivity4=16
[end]
[joystick]
sensitivity0=8
sensitivity1=8
sensitivity2=8
sensitivity3=8
sensitivity4=8
sensitivity5=8
linearity0=0
linearity1=0
linearity2=0
linearity3=0
linearity4=0
linearity5=0
speed0=16
speed1=16
speed2=16
speed3=16
speed4=16
speed5=16
deadzone0=0
deadzone1=0
deadzone2=0
deadzone3=0
deadzone4=0
deadzone5=0
[end]
[mouse]
flightsim=0
sensitivity0=8
sensitivity1=8
sensitivity2=8
sensitivity3=8
sensitivity4=8
sensitivity5=8
overrun0=0
overrun1=0
overrun2=0
overrun3=0
overrun4=0
overrun5=0
fsdead=0
fsindi=1
[end]
[weapon keys v2]
1=0xff,0xff,0xff
2=0xff,0xff,0xff
3=0xff,0xff,0xff
4=0xff,0xff,0xff
5=0xff,0xff,0xff
6=0xff,0xff,0xff
7=0xff,0xff,0xff
8=0xff,0xff,0xff
9=0xff,0xff,0xff
0=0xff,0xff,0xff
[end]
[cockpit]
mode=2
hud=0
rettype=0
retrgba=0,32,0,0
retsize=0
[end]
[toggles]
bombgauge=1
autosaveinterval=0
persistentdebris=0
prshot=0
noredundancy=0
multimessages=0
multipinghud=0
norankings=0
automapfreeflight=0
nofireautoselect=0
cycleautoselectonly=0
cloakinvultimer=0
respawnkey=0
mouselook=0
pitchlock=0
[end]
[graphics]
alphaeffects=1
dynlightcolor=1
[end]
[plx version]
plx version=0.61.0
[end]
[end]
I removed all the files on mine and it didn't work
Huh.
Ini file looks like:
; Controls:
-nocursor ;Hide mouse cursor
;-nomouse ;Deactivate mouse
;-nojoystick ;Deactivate joystick
;-nostickykeys ;Make CapsLock and NumLock non-sticky
I think we have to check the gptokeyb code as to what happens if no file or a empty file is supplied
back = \"
start = \"
a = \"
b = \"
x = \"
y = \"
l1 = \"
l2 = \"
l3 = \"
r1 = \"
r2 = \"
r3 = \"
up = \"
down = \"
left = \"
right = \"
left_analog_up = \"
left_analog_down = \"
left_analog_left = \"
left_analog_right = \"
right_analog_up = \"
right_analog_down = \"
right_analog_left = \"
right_analog_right = \"
This works for blank.gptk
Which means:
# GAME SYSTEM KEYS
# Abort Game: Esc
# Show Game Log: Shift-Esc
# Help Menu: F1
# Options Menu: F2
# Save/Load Game: Alt-F2/F3
# Quicksave/Load: Alt-Shift-F2/F3
# Switch Cockpit Modes: F3
# Drop Marker: F4
# Toggle Recording: F5
# Switch HUD Modes: Alt-F7
# Pause: Pause
# Screenshot: Printscreen
# Select Primary Wpn: 1-5
# Select Secondary Wpn: 6-0
# Cycle Left/Right Window: Shift-F1/F2
# Menu Affirmative: Space
# GPtoKeyB Documentation: http://portmaster.games/gptokeyb-documentation.html
###################################
# Universal controls, needed for menu -- DO NOT CHANGE
back = esc
start = enter
up = \"
down = \"
left = \"
right = \"
a = space
# Assigning integer keys to remaining universal buttons
b = 0
y = 1
x = 2
l1 = 3
l2 = 4
r1 = 5
r2 = 6
b_hk = 7
x_hk = 8
y_hk = 9
# Leave L3 and R3 blank since not available on all supported devices
l3 =
r3 =
# Use mouse movement for left analog stick
left_analog_up = mouse_movement_up
left_analog_down = mouse_movement_down
left_analog_left = mouse_movement_left
left_analog_right = mouse_movement_right
right_analog_up = \"
right_analog_down = \"
right_analog_left = \"
right_analog_right = \"
That works
Ok I think I have it. Only caveat is with joystick controls there is no number binds for level select.
Hmm
# Setup controls
$ESUDO chmod 666 /dev/tty1
$ESUDO chmod 666 /dev/uinput
if awk '/^\s*;-nojoystick/ { exit 0 } END { exit 1 }' "$GAMEDIR/d1x.ini"; then
$GPTOKEYB "$GAME" -c "conf/kbm.gptk"
else
$GPTOKEYB "$GAME" -c "conf/joy.gptk"
SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig"
fi
Using this makes the game take a long time to boot
Presumably due to the ini search
Just noticed this in long when not using .dxa addons: Music descent.hmp could not be loaded: ModPlug_Load failed
So there is some kind of defaults if the file is wrongly specified
Yup
Anyway using
# Setup controls
$ESUDO chmod 666 /dev/tty1
$ESUDO chmod 666 /dev/uinput
if [ "$(sed -n '42s/^\s*;-nojoystick//p' "$GAMEDIR/d2x.ini")" ]; then
$GPTOKEYB "$GAME" -c "conf/kbm.gptk"
else
$GPTOKEYB "$GAME" -c "conf/joy.gptk"
SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig"
fi
To try to shorten search time but script still takes ages to load the game
Ok, I think that's a wrap. I'll push a test zip in a few.
@unborn chasm can you supply me with a libmodplug1 file for arm64? Pretty please?
I want to not require .dxa sound files:
Music descent.hmp could not be loaded: ModPlug_Load failed
Music briefing.hmp could not be loaded: ModPlug_Load failed
Music game01.hmp could not be loaded: ModPlug_Load failed
Music descent.hmp could not be loaded: ModPlug_Load failed
Nvm I think I got it from my wsl
...nope, that didn't work
Not at Home atm 🙂
<@&1123159718874058882> Update is ready at https://github.com/JeodC/Portmaster-Descent -- Just download the release zip file and replace your entire port (sh files and port folders). Make a backup if you have savegames or something if you like.
This update brings sdl controls back to Descent 1 & 2. The gptk files have been moved to the conf folder as joy.gptk and kbm.gptk. The port decides which to load by reading the -nojoystick line in the d1x.ini or d2x.ini file. Just remove the semicolon to switch to kbm controls. I've also updated the readme file to reflect a new default control scheme.
What I'm looking for in this test is if kbm controls are worth keeping at all. In my tests joy.gptk appears superior while retaining the keyboard numbers for buttons, keeping level select intact.
You can react to this message with green check to keep kbm controls or red x to get rid of kbm control options entirely.
@inland forge This is up your alley.
It's cool, we have libmodplug already anyhow. It just can't read the .hmp files for whatever reason. All this means is using an add-on for music is a necessity.
oh geeze, I was sleeping on this for few days, nice its working again
dangit my SD is almost full xD will test later after getting a larger SD card
this game is on the GB's size scale
That’s due to the dxas most likely
I tried packing without them and that’s where the modplug error comes from.
I would say kbm mouse are not really necessary to keep? I seems fine to me with joystick controls, tweaked a bit to personal preferences. Funny thing happens when I change something in graphics settings, it will make the game run in 320x480 "window", though simple restart fixes it. Older port didnt have that, but its not exactly serious problem.
What device do you use?
353VS / arkos
The sh file finds your device resolution and sets it
oh yes , I have same behaviour with graphics settings on descent 2
Or it should
but I figured out I have nothing to do in those settings
so it doesn't matter
😄
well it does on launch, but I guess the engine does something weird in settings menu
Hmm
I’ll try on my end in a bit
If your resolution is 320x480, does it matter if it’s windowed?
well this is 640x480 screen
Port uses device_info.txt to find res, maybe bugged for ark or system
Or you need to update portmaster
To use it
updated couple days ago, but I will check just in case
no, im on the latest portmaster. I guess its something in ark, but unless I mess with the graphics menu it runs at 640x480 fine, so whatever
Yeah works just fine for me, has to be an arkos thing
Well it works on my arkos sd
I even changed the res manually to 640x480 and then booted
It changed to 480x320 for rg351
No issues
I'm pretty sure device_info.txt is on the release track by now.
Today is my birthday
Happy birthday
happy ascending
So far I'm not seeing any benefit to keeping kbm.gptk
Oh, that's awesome. I'll test it ASAP.
https://github.com/JeodC/Portmaster-Descent/tree/main/addons/d1 Can’t recommend the d1x-d2x-xl-mus.dxa addon enough
Better than opl3 imho
I just created that one a little bit ago from a different descent container d2x-xl
should I update to version with sdl control ? what I get ? more precise analog control ?
Supposedly although I can't really tell the difference.
I gave the right analog stick something to do in both gptks anyhow.
then for me no need to fix what is not broken 👍
Added Levels of the World and Descent: Maximum to github. They're abandonware. Well, in Maximum's case, it was a .dxa file that replaced the normal campaign with the psx levels. I just turned the contents into a hogfile so it works like a proper dlc like vertigo.
This update's kinda big enough to warrant some announcement for it once it goes live.
I pushed new zips in existing pr.
Adds cheats, makes addons readily available in repo, adds sdl controls for better game experience
@stable kayak Hey, quick question about Descent 1 and 2's multiplayer: Do you know if someone has developed a feature that would add bots to multiplayer deathmatches? They did for lots of Doom sourceports, but I never found anything similar for Descent games.
I was wondering about playing a few deathmatch matches in Minerva levels.
It was pretty cool. Take a look: https://youtu.be/ijfTRgSMOI0?t=24
Players: Drakona, Captain Zaphod, JinX, Dravis, NaphthaTurisas, LoNi, MD-1224
Game: Descent 1
Version: D1X-Rebirth 0.58.1 Retrohomers 1.0 Sniper-packets 1.0
Map: Minerva MW
Perspective: JinX
Date: 20 Nov 2013
Event: Rangers Scored
Minerva MW is Drakona's edit of Minerva with extra weapons to compensate for the switch from TCP to UDP and the res...
I do know the multiplayer works for these ports, but most people on the dxx tracker use older builds.
I have a cgnat (tmobile home internet) so I can't join in on the fun easily.
Why do you need keys at the same time as joystick? In the very first version that was posted here (google drive) there are unlimited joystick buttons. Also plugging in a keyboard still works as a keyboard
For level select
Oh yh
There is still no option to scroll through integers in that screen
Yh. I can do level 1 on insane now without losing a life 😅
Enjoy the carpal tunnel
Definitely my favorite way to play it now
Not an issue tbh. Chi is hella ergo
I have my buttons mapped exactly the same with the port and the ps1 version. Only difference is on ps1 I have select + fire to cycle primary and secondary weapons (depending which fire button). It's awesome like that. I guess that isn't possible with the ports?
Should be. See gptokeyb documentation.
You can set SEL+R1 to whatever number R2 is.
r1_hk = 6
Add that to your joy.gptk
Change r2 if you want to
rg503+skull n co caps
or gfe chi
zero carpal tunnel
Just tried Descent with full joystick support. It's much better than it was before.
Not only we can have analog support with sensitivity for all axis, but I can also map all buttons as I see fit. Previously, I was unable to change DPAD buttons to change weapons, neither map R3 to any functions. Now, everything is mappable.
Have you messed with the linearity settings at all? For me it seems to help with precision somehow. The difference is hard to describe
(@Solid One)
Not that I remember of.
Btw what mappings are you working with? Just wondering. ie what do you have on sticks. Where is banking, accel etc
Basically, I'm playing as if it was an usual fps game.
Left analog is used for accelerating/strafing, right analog is used for aiming, R1 for primary weapons, L1 for missiles, Y and B for moving up and down, L2/R2 for banking, etc
Managed to map controls like this after removing a few default keyboard/joystick mappings. But I managed to change everything to my needs directly through the game UI.
Great, that was the whole point. Most users shouldn't need to find and modify the gptk file.
@unborn chasm That pr is taking a while
What pr?
I don't have rights to merge that lol
Yeah
@sharp gazelle or @trail timber pr can be merged
done
No
Thanks!
I would still like to figure out Music descent.hmp could not be loaded: ModPlug_Load failed. This occurs when you don't use any sound dxa addons. We have a libmodplug.so at /usr/lib and the sh exports that.
Easy fix.
export SDL_FORCE_SOUNDFONTS=1
export SDL_SOUNDFONTS="$GAMEDIR/libs/soundfont.sf2"
Debian arm64 does not come with any soundfonts. Have to add one.
Sound Blaster 16 was the most common back in the day. Gonna go with that.
Darn the .sf2 is too large to commit to github.com
I don’t have my system with me. What version does the latest build show on menu?
A game tracker for DXX-Rebirth.
I’m hoping it’s 0.61.0.16
It is and I fixed my multiplayer issue by doing port forwarding on my router.
More good news, the compatibility build doesn't have issues with multiplayer against upstream builds. Worked with my windows pc.
The mouse only has 2 axes. So there's that
Lol true
Does portmaster.games have the latest version(s) atm?
it should
This is sort of an urgent pull request as I just found the Descent.sh and Descent 2.sh files inside the zip were likely in the wrong encoding format (CR LF instead of LF) and therefore would not ru...
merged
Thanks
Is it possible to set hot key to multiple taps. Eg sel + (r1 x2)? 🤔
Eg sel + r1 =1. Sel + r1x2 =2 Etc. Would be nice for level select
Don’t think so
Dang. Also wondering why left_analog_up = mouse_movement_up here and all the other ones are blank? 🤔
Btw "You can react to this message with green check to keep kbm controls or red x to get rid of kbm control options entirely.
My question would be what is gained by getting rid of it? I guess someone out there might want mouse flightsim mode
Joystick controls have Button 1 and Button 2 set as default for primary and secondary fire. Button 2 is also the same button used to drop bombs in the keyboard section. Therefore, pressing Button 2 would both drop a bomb and fire the secondary weapon.
This commit reassigns that default joystick command to Button 3, matching the keyboard config.
This will be fixed in a future update, but heads up.
I suppose the better option is to remove the two joystick button maps entirely since they will vary across devices. I'll probably do that later.
Why is a joystick button assigned to anything in the keyboard section?
Because it's what the game does by default when creating a new pilot.
Logs logs logs 🙂
What device and os is that?
And detailed error message
But where exactly? Directly on the screen? What game version did you use?
@tawny laurel Please upload the gamelog.txt file in your conf folder.
\ports\descent\conf\.d1x-rebirth
Odds are it's the same as log.txt just after the LIBGL lines. But you never know.
If it's the same open d1x.ini and remove the semicolon for this line:
;-verbose ;Enable verbose output.
And then check the log again after you get the error.
Player version mismatch might be the pilot profile, also in the conf folder. If you've somehow replaced the Player.plx file and not the Player.plr file, that would explain it.
Ah, I get the same error on my arkos.
Let me see...
Ok, I fixed it by replacing both Player.plr and Player.plx with the files from my own repo. The release zip might be faulty. Testing further.
Yup, zip is faulty. Descent 2 does not have that issue.
I think it hasn't been widely reported because the game still works. It just creates a new Player pilot to overwrite the previous one. It restores default controls so the user has to reconfig everything.
Soon we're away from the damn zips 😛
PTL on that one
Ok, zips synchronized and tested. Issue resolved.
@trail timber or @sharp gazelle Sorry about this, hopefully the last pr on this one for a while.
merged
Thanks!
the build failed but I re-ran the job. I'll keep an eye on it.
What’s it build for? It’s not compiling code, right? It’s a bunch of zips.
it just means the job is running. It's the build step on a github action
I know that. I mean why’s there a GitHub action in the first place.
Ah it publishes to a different repo
it's good now.
I haven't replaced anything, just installed fresh
thanks will test now
oh so can you send the new updated zip?
i got the version from your github but still the same error
Remove the port entirely and download from postmaster
I just grabbed latest from pm on my ark sd and have no issues
Can we back up game saves?
Sure
Ah. Are those the "default.sg(number)" files?
Also how does one disable logging? My log.txt is getting big
yeah in the .sh either the exex line or the > tee 2 1 one
Thx. I thought maybe the ini. Like debug or whatever. I'll have to check out the .sh
Logging occurs twice, once in log.txt and again in conf/gamelog.txt. You can remove the log.txt part from the sh file and stick with gamelog.txt.
Both grow in size forever?
usually not much is written into logs so they'll never get big
For my ports after testing I'll check how big they are and decide what to do
Descent has no way to disable gamelog.txt generation from in the .ini, if you need to get rid of it you can change the sh to delete that file after each run.
The github action builds all the json files and whatnot for portmaster to use.
