Skip to content
This repository has been archived by the owner on May 5, 2021. It is now read-only.

[Linux] ObFab-Prefabs-7.70.pk3: Script Error: wadfab_load: failed to load VERTEXES lump #7

Closed
TiZ-HugLife opened this issue Feb 9, 2019 · 22 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@TiZ-HugLife
Copy link
Contributor

TiZ-HugLife commented Feb 9, 2019

Happens with the Linux version of Oblige 7.70, immediately upon trying to generate a level set.
But does not happen with the Windows version of Oblige 7.70 run through Wine.

What other information would you need to debug?

@TiZ-HugLife TiZ-HugLife changed the title ObFab-Prefabs-7.70.pk3: Script Error: wadfab_load: failed to load VERTEXES lump [Linux] ObFab-Prefabs-7.70.pk3: Script Error: wadfab_load: failed to load VERTEXES lump Feb 9, 2019
@caligari87
Copy link
Owner

caligari87 commented Feb 11, 2019

You can try extracting the addon .pk3s directly into oblige's working folders (make sure to take backups first), It seems to be prefabs loaded in .pk3s that cause the error. Aside from that I cannot say, I have the same problem and it appears beyond my ability to troubleshoot.

@caligari87 caligari87 added bug Something isn't working help wanted Extra attention is needed labels Feb 11, 2019
@TiZ-HugLife
Copy link
Contributor Author

Does extracting the .pk3 to the Oblige root work for you? Because that does not work for me. My guess is a case sensitivity issue; that would explain why it disappears when you run it in Wine.

@caligari87
Copy link
Owner

Well, tested last night and it seems to work if you're running Oblige in a local folder, but not as an installation. not sure why that might be.

@TiZ-HugLife
Copy link
Contributor Author

What is the distinction? I don't think that oblige supports being installed with the traditional Unix file structure... does it? And if you did install it that way, where would it know to look for addons?

@caligari87
Copy link
Owner

There is a make install that installs Oblige system-wide on Linux. To clarify, I extracted the addon to Oblige's working folder after making but without installing, and that seemed to work. However, running the addon as a .pk3 doesn't seem to work in either instance, installed or not.

@caligari87
Copy link
Owner

Addendum: There are some additional combinations I need to try, perhaps I can narrow down what situations work and which don't. That might give some hints.

@TiZ-HugLife
Copy link
Contributor Author

The reason I asked is because I didn't make install. I just have all the Oblige files in one folder, /xusr/opt/oblige/7.7. And I extracted the .pk3 just like that, and it didn't work on mine. :/

@Epictyphlosion
Copy link
Collaborator

I could see what I can do about this, as I've used Lubuntu in the past, but I'd have to set up a VM first.

@tukkek
Copy link

tukkek commented Jun 22, 2019

I can confirm this on Linux (4.19.0-5-amd64 #1 SMP Debian 4.19.37-3 (2019-05-15) x86_64 GNU/Linux).

This happens with the final Oblige build compiled from source, not installed (only make). ObAddon version is the one released today (2019-06-22) but I also had it happen before as well (probably 2019-06-12). In actuality, this has happened every time I tried to run ObAddon, so far (twice).

Judging by the map preview, it seems to generate an entire map before showing the error, The ooutput, aside from the error itself is MAP 01: Plan. Repeated attempts show no further progress.

My settings can be seen here https://gist.github.com/tukkek/badbcf026fe967400691f6b7974302fa

(Also thanks to everyone involved in making this, I can't wait to see this actually working, it's amazing)!

@tukkek
Copy link

tukkek commented Jun 22, 2019

I have mounted a case-insensitive filesystem through this trick and the problem persists, so it doesn't appear to be case-related. Note that you have to mount the filesystem with -o exec for Oblige to run on it.

@tukkek
Copy link

tukkek commented Jun 22, 2019

Extracting the .p3k file to the main Oblige directory seems to be working normally now (now I wish I had tried that first...). I have asked for any conflicting filenames to be overwritten and made sure to not have my extraction utility create its own folder for the archive's contents, which it would have done by default.

I should also note that Oblige by itself works fine out-of the-box so it's most likely an issue with ObAddon.

I have gone halfway through a full game generation and will have to resume later. If I have any problem I'll post again.

@simon-v
Copy link
Contributor

simon-v commented Jun 23, 2019

I have a suspicion, that the virtual filesystem mounter (which is responsible for getting access to the resources inside both the prefab wads and the addon packages) gets confused by nested archives (i've had similar issues with ZDoom as well).

Regarding extracting the release pk3, i maintain a personal branch of Oblige with ObAddon merged in at https://github.com/simon-v/Oblige/tree/obaddon. It's not always up-to-date with the main ObAddon repo, but it's sufficient for my own purposes. This branch was created by executing:

git clone https://github.com/caligari87/Oblige.git
git remote add obaddon-upstream https://github.com/caligari87/ObAddon.git
git merge -s recursive -X theirs -X subtree=src --no-ff obaddon-upstream/master --allow-unrelated-histories -m 'Merge ObAddon into Oblige'

@caligari87
Copy link
Owner

I like your solution and may use it locally on my system as well. So far I've just been making a static copy of the Oblige directory and copying in the updated ObAddon files, then running Oblige locally from that instead of bothering with making and installing. Since my Oblige fork never really changes it's not necessary to rebuild, so long as the ObAddon archive is extracted into the working folder.

@tukkek
Copy link

tukkek commented Jun 23, 2019

Workarounds are great and all but most people, even Linux users, won't bother or have the know-how to apply those themselves. Isn't there a proper fix for this issue? If the problem is nested packages, couldn't ObAddon be organized as a flat package, perhaps through an extra (automated) build step?

Just to follow up on my last comment: I have managed to create episodes and games normally, everything seems to be working properly, up to and including me getting my ass kicked by demons.

@caligari87
Copy link
Owner

caligari87 commented Jun 23, 2019

Unfortunately the problem appears to be with Oblige's C++ code on Linux, which none of us know how to fix at this time (Notably everything works fine on Windows). We've decided against distributing it as an "integrated" Oblige package for various reasons. So until someone with C++ knowledge is available to dig into the error, workarounds are the order of the day for Linux.

@tukkek
Copy link

tukkek commented Jun 26, 2019

EDIT: this doesn't seem to help with this particular issue.

Saturn-Tan posted this link on the Unofficial Oblige Discord when I brought up this issue. It says that the problem should be solved by running ./Oblige --install . (or apparently by properly running make install prior to running Oblige).

I haven't had the time to actually try this out on my local setup though. Just wanted to share and have it properly documented since these do seem to be related.

@caligari87
Copy link
Owner

That doesn't fix this particular issue. I've tried it both ways.

@tukkek
Copy link

tukkek commented Jun 27, 2019

Can confirm, ./Oblige --install . doesn't seem to help. I'll edit my previous comment with this info. Thanks Caligari!

@andwj
Copy link

andwj commented Jan 30, 2020

Hello, Oblige author here.

I just fixed this issue in the main Oblige repository, commit be64fad51bcc to be precise. You'll need to update the C++ code and recompile Oblige binaries to get the fix. There are no changes to any Lua code.

@caligari87
Copy link
Owner

caligari87 commented Jan 30, 2020

image

Thank you Andrew! I'll test later when I'm home and hopefully close this once and for all.

@andwj
Copy link

andwj commented Jan 30, 2020

BTW, a workaround for the bug is to create the PK3 with no compression on any files (or no compression on the wad files). Naturally that is not great as it makes the PK3 about twice as big, but would allow it to work with stock Oblige 7.70.

@magpie514
Copy link

Long time no see! This is great news, I can finally get native performance in Linux and script a lot of things. Thank you very much!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

8 participants