Giter Club home page Giter Club logo

blt4l's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blt4l's Issues

BLT DLL Update message

Every time when I get to the main menu I get the message that the BLT DLL needs an update and I need to click on "Update later". Even we don't use that on Linux.

However, when I want to update it, it downloads the zip file but hangs at extracting it. I can't stop that update and the only way to stop it, is to kill the game.

I've already tried to exclude it from the automatically update (unchecked it in the BLT options) without success. This is not related to any mods.

Here's a screenshot of that message: https://i.imgur.com/iXxHXbb.jpg

PAYDAY 2 crashes

PD2 seems to crash when I set the launch option (loading BLT). Looking in the dump files I found this /home/me/.local/share/Steam/steamapps/common/PAYDAY 2/payday2_release: error while loading shared libraries: libsubhook.so: cannot open shared object file: No such file or directory

I'm guessing the subhook binary isn't included in release versions?

Crashes immediately on Slackware64-current

I've read through some of the other issues and they were all "fixed", but they were lucky enough to have things magically fixed or patched. :/

dlHandle = 0x7f2f12220168
06:02:08 AM Info: finding lua functions
06:02:08 AM Info: installing hooks
Setting breakpad minidump AppID = 218620
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198142119173 [API loaded no]
Game removed: AppID 218620 "PAYDAY 2", ProcID 18635
No cached sticky mapping in ActivateActionSet.

I've seen people pasting stack traces, and I'll be happy to, as soon as someone call tell me how.

I've tried using 1.2r1 prebuilt for Debian Stretch, but no difference, used latest git and compiled, and tried 1.2r1 snapshot source.

Output of ldd onlibblt_loader.so

   linux-vdso.so.1 (0x00007ffc1649c000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f4cb835a000)
   libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007f4cb80ea000)
   libz.so.1 => /lib64/libz.so.1 (0x00007f4cb7ed2000)
   libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4cb7b52000)
   libm.so.6 => /lib64/libm.so.6 (0x00007f4cb7842000)
   libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f4cb762a000)
   libc.so.6 => /lib64/libc.so.6 (0x00007f4cb725a000)
   /lib64/ld-linux-x86-64.so.2 (0x000055a2af942000)
   libidn.so.11 => /usr/lib64/libidn.so.11 (0x00007f4cb7022000)
   libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007f4cb6df2000)
   libssl.so.1 => /lib64/libssl.so.1 (0x00007f4cb6b7a000)
   libcrypto.so.1 => /lib64/libcrypto.so.1 (0x00007f4cb672a000)
   liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007f4cb651a000)
   libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007f4cb62ca000)
   libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f4cb60aa000)
   libsasl2.so.3 => /usr/lib64/libsasl2.so.3 (0x00007f4cb5e8a000)

I'm at a loss, so any help anybody can provide is greatly appreciated.

steamrt compatibility

I've been working on getting a build working for Ubuntu 12.04 LTS + SteamRT. Unfortunately, steamrt does not ship a cURL that supports the CURLOPT_XFERINFO_ options, which are currently at the center of HTTP support in BLT4L. We should find a way to work around this.

Can't Find Dependencies on Arch Linux

Apologies for raising the bug count since this is probably user error

ERROR: ld.so: object '/home/grimmoire/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/grimmoire/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/grimmoire/Storage/SteamLibrary/steamapps/common/PAYDAY 2/payday2_release: /home/grimmoire/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by /home/grimmoire/Packages/blt4l/build/libblt_loader.so)
/home/grimmoire/Storage/SteamLibrary/steamapps/common/PAYDAY 2/payday2_release: /home/grimmoire/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/grimmoire/Packages/blt4l/build/libblt_loader.so)
/home/grimmoire/Storage/SteamLibrary/steamapps/common/PAYDAY 2/payday2_release: /home/grimmoire/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/grimmoire/Packages/blt4l/b

$STEAM_LIBRARY error with install

Running on 64 bit Ubuntu 16.04
When I run the install.sh it cant find my steam library
When I manually followed the path /home/lance/.steam/steam/steamapps/common/PAYDAY
I found the payday 2 files so I have no idea why it's not finding it

lance@lance-TA970:/Desktop/blt4l-master$ ./install.sh
Updating submodules: OK
Looking for CMakeLists.txt: Found
Checking for libcurl4-openssl-dev: Installed
Checking for zlib1g-dev: Installed
Checking for cmake: Installed
Checking for build-essential: Installed
Looking for PAYDAY 2: find: ‘/home/lance/.steam/steam/steamapps/common/PAYDAY’: No such file or directory
find: ‘2’: No such file or directory
Not Found
The PAYDAY 2 install location could not be determined.
If you have a steam library located outside of /home/lance/.steam/steam,
you should set $STEAM_LIBRARY to point to it
lance@lance-TA970:~/Desktop/blt4l-master$

Getting BLT4L in to a functional state

Hi, now I've built this hook -- how do I actually use it?
I tried using export LD_PRELOAD=/path/to/libblt_loader.so && env -u SDL_AUDIODRIVER %command% in the Steam launch options but this leads to an instant crash for me.

The env -u SDL_AUDIODRIVER is required for me as for some reason SDL_AUDIODRIVER=alsa is set on my system (which won't work with PD2).

Is that the way it should work and is that just due to the hook not yet being complete?

Failes to load.

Hi there.
Just found this am am totally excited :) Thank you for your work!
Sadly I cant get it to run with the provided install.sh ...

The installer runs without giving errors and copies the compiled libblt_loader.so into the PayDay 2 directory. When starting the game with the launch options env LD_PRELOAD="$LD_PRELOAD /home/timo/Spiele/steamapps/common/PAYDAY\ 2/libblt_loader.so" %command% 2>&1 | tee /tmp/pd2.log I get these erros:

ERROR: ld.so: object '/home/timo/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/timo/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/timo/Spiele/steamapps/common/PAYDAY\' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '2/libblt_loader.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Setting breakpad minidump AppID = 218620
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198023558012 [API loaded no]

I've found #11 but I tried all suggestions and couldn't get it to work ...

I'm on ArchLinux and the game is installed to a custom folder.

Edit: Spelling.

Issues getting hook to work on Fedora

Long story short, trying to get both prebuilt and compiled versions working aren't successful on Fedora. I used env LD_PRELOAD="$LD_PRELOAD ./libblt_loader.so" %command% | tee /tmp/pd2.log as launch parameter and launching the game prints the following in the log got:

ERROR: ld.so: object '/home/vavency/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/vavency/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
dlHandle = 0x7f9f12ad0148
02:00:23 PM Info: finding lua functions
02:00:23 PM Info: installing hooks

What could be causing this problem?

Missing dep Fedora (and installation failures (and some solution)

On Fedora25, rpmFusion Enabled
the install script is missing curl4-openssl and zlib
DNF install says the packages are not available.

-- The C compiler identification is GNU 6.3.1
-- The CXX compiler identification is GNU 6.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
CMake Error at CMakeLists.txt:9 (message):
One of the needed libraries wasn't found! Exiting

Formalise a naming and formatting convention

I was working on some code and noticed a few things that I would like to sort out:

Firstly, I would like to avoid preprocessor macros at all costs. If they must be used, they should be clear in what they do. e.g. if they define or assign based on an input name, they should not append or prepend to the definee or assignee name (e.g. olua_...).

Secondly, I would like to suggest that we adopt the following naming and namespacing conventions

PREPROCESSOR_DEF
name_space
function_name // capital letters are OK after the first letter. first letter should always be lower case
ConstVarName
localVarName
paramName
ClassName

Thirdly, the following formatting conventions:

// Brace on next line except for the following cases

namespace my_namespace { // end this line here
    // indent brace contents ALWAYS, do not leave in line with parent
} // clear line...

class MyClass { // end line here
};

inlineArray = { /* contents */, // comma ends line when overflowing
};

#define MACRO_USING_COMPOUND_EXPR ({ \
    exprBody(); });

// class def/dec:

class MyClassName { // clear line
    public:
        // indent access classifier groups
    protected:
    private:
}; // clear line...

// the same rules apply to structs, enums, etc...

// when you extend an expression, move binary operators to the beginning of the next line if they
// overflow the current line

if ( (COMPLEX_IF_EXPR && ....) || THAT && (THIS + THAT)
     || OTHER_THING )
{  // nothing here please. always align with parent token, not GNU style
    // indent
}

// function declaration
__attribute__((attribute (param)))
static volatile const ReturnType const
function_name (ParamType paramOne)
{
    return returnTypeInstance;
}

// Type modifier placement

void* pointerToTheLeft;
void& refToTheLeft;

Please also use scope blocks liberally. They are an excellent way to provide a visual understanding of where something is happening at no run-time cost, and without comment abuse.

This issue will be closed once all current code is compliant.

Website Hosting

Hello,

If you want some website hosting, a SSL certificate and possibly a domain name, I would be able to host one for you.

Website

We should probably put together a webpage. For this we have a few options:

  • GitHub pages - we put the site in a repo and host it at GH Pages
  • I host it - meh
  • We talk to James about getting a page on paydaymods.

GH Pages would be great because it's the simplest solution and we have collaboration. I can do the same for hosting myself, but it really doesn't offer advantages as I'm also still HTML-Only, much like GH Pages.

With the paydaymods option we don't really have control over our listing, I would assume.

@ZNixian I know that you had some thoughts on this. Would you mind sharing some ideas?

Windows-specific paths in mods

While testing this out, it looks like there are some case sensitivity issues.

HoloHUD, for example, is badly done. Filenames are a mixture of upper and lower case, but all of the calls in the LUA scripts are for lower-case names.

I doubt that this is something that can be fixed in the hook itself. More likely will have to direct users to a solution using ciopfs for compatibility: http://www.brain-dump.org/projects/ciopfs/

PocoHUD is also only partially working. Not sure if this is due to case sensitivity or something else.

Err: Failed to load mods/PocoHud3/poco/../poco/3rdPartyLibrary.luacErr: Failed to load mods/PocoHud3/poco/../poco/Hud3_class.luacErr: Failed to load mods/PocoHud3/poco/../poco/Hud3_Options.luacErr: Failed to load mods/PocoHud3/poco/../poco/Hud3.luacPoco:Init

From browsing through the PocoHud code this appears to be a separate issue, as the filenames seem to be called correctly. I will set up ciopfs locally and test when I have some more time later today or tomorrow.

fs_delete_dir is broken, plus suggestions

I went to pull up and noticed the addition of fs_delete_dir...

if (currentNode->d_name == "." || currentNode->d_name == "..") is comparing two c-style strings, so you're only comparing a memory address. Also shouldn't return after removing the first file on 188.

Not actually sure how that hasn't wiped anyone's hard drive yet... I just wiped mine while trying to figure out how it hasn't already happened...
I would suggest this implementation, which seems less error prone than just fixing that function: https://stackoverflow.com/questions/3184445/how-to-clear-directory-contents-in-c-on-linux-basically-i-want-to-do-rm-rf/3184915#3184915

Can I also suggest we get rid of -fpermissive in the CMake script? We should probably really use -Wall -Werror and fix the bugs that the compiler already knows about...

Another thing I noticed on this branch is that SubHook is crashing whenever we go down to the "won't load" branch in blt_main, since we have statically initialized SubHooks, and the destructor in the subhook submodule doesn't verify the hook exists before dereferencing in the destructor.

Finally, why do we have the threadList in http.cc? Why not just create the threads and detach them? We're never rejoining, anyway...

Wanted to at least open a discussion before just making some of those changes.

Rearchitect Installer/Builder architecture

Given recent issues brought up around installer compatibility, I feel that it may be beneficial to rewrite the installer as a multipart perl script (perl, as it's most likely to already be installed on most Linux systems, almost 99% certain on Debian and Ubuntu/SteamOS).

Currently, the script I use to automate builds in the different distribution chroots is a modification of the shell script installer. If we moved the installer logic to a central place, the differences between the installer and chroot builder would be miniscule and any changes to the central installer logic would affect both, which means less maintainence.

Additionally, writing in a more flexible language would open up the ability to parse and modify VDF files, therefore allowing perfect location of the payday install location, and set the launch parameters, therefore making installation-to-launch fully transparent to the user.

Cannot find PAYDAY 2.

I'm getting this error while trying to install it, with ./install.sh

Looking for PAYDAY 2: Not Found

The PAYDAY 2 install location could not be determined.

If you have a steam library located outside of /home/aaron/.steam/steam,

you should set $STEAM_LIBRARY to point to it

Looking for Steam configs: 1 found

Looking for loader: /home/aaron/Documents/Programs/blt4l_1.3-r1-1_Ubuntu-trusty/libblt_loader.so

Looking for lua: /home/aaron/Documents/Programs/blt4l_1.3-r1-1_Ubuntu-trusty/mods

Preinstall checks failed

I have set $STEAM_LIBRARY to a range of things, such as this: STEAM_LIBRARY=/media/aaron/Fast\ Games/SteamLibrary/steamapps/common/

But no matter what I do, or what I set it to I cannot get it to find PAYDAY 2

Have install.sh modify the games launch properties automatically

This is an improvement suggestion/request. To anyone that has the constitution to work with VDF (I personally would not touch it with a very, very, long stick).

We should enable install.sh to modify localconfig.vdf and set LaunchOptions under 21860 to env LD_PRELOAD="$LD_PRELOAD ./libblt_loader.so" %command%.

The modification should be as cross-machine friendly as possible, and thus needs to make no assumptions about the end users PC. For this reason, I would suggest Perl 5.x as a scripting utility for this because it is more robust than Bash, and is installed on nearly every distribution conceived by mankind since the creation of life, the universe, and everything.

For best results, we would need to parse the VDF data in to a inspectable structure, change the value, and emit the modified file.

Can't get BLT working

I'm running Mint 17.1-64 bit and I'm trying to get BLT running. I'm new but I got the most versed Linux user I know and he couldn't get it either. We tried the pre-compiled BLT4L versions of Ubuntu-Precise-steamrt and Ubuntu-trusty. My friend didn't know if those files were compiled for 64 or 32-bit so we tried to compile the libblt_loader.so ourselves, both with the install.sh and manually. We didn't have any luck in getting the game to run with any of those libblt_loader.so.

Whenever I try to launch payday, it brings up the "Preparing to launch payday 2" window and then it quickly closes. We went through everything we could think of and managed to throw some weird errors, CPU level errors, and somehow inject payday 2 into steam and crash the application. I have no clue what to do at this point.

EDIT: I got it working with the libblt_loader.so that I compiled. No idea why it worked and didn't before.

Loads but mods don't seem to work?

First of all, thanks for making this, PD2 on Linux is a really great game, and it's awesome that the Linux community can get mods working.

I'm using Fedora 23, and selinux is disabled.

If I use either self-built or steamos hook, I seem to get the same behaviour:

11:48:19 PM Info: installing BLT LUA API
11:48:19 PM Info: Loading BLT Base
11:48:19 PM Info: luaL_loadfile() = 0
11:48:19 PM Lua: [Warning] Could not load file 'mods/saves/mod_manager.txt', no data loaded...
11:48:19 PM Lua: [Warning] Could not load file 'mods/saves/mod_keybinds.txt', no data loaded...
11:48:19 PM Lua: [Warning] Could not load file 'mods/saves/mod_updates.txt', no data loaded...
11:48:19 PM Lua: [Mods] Loading mods for state (table: 0x2997b140)
11:48:19 PM Info: lua_pcall(...) = 0

Starting PD2 with:

LD_PRELOAD="$LD_PRELOAD ./libblt_loader.so" %command% > /tmp/pd2.log 2>&1

I have the base lua copied from the distribution in my ~/.steam/steam/steamapps/common/PAYDAY 2/mods directory, so I don't really know why this isn't working (I don't have a mods option under options). I also have PocoHud3 in there. Any clues?

I though originally perhaps it was because of the space in "PAYDAY 2", so I set LD_LIBRARY_PATH to the path of the installed game, then set LD_PRELOAD=libblt_loader.so and that behaved the same way.

Mod crashes on Linux but not Windows version

Working on my BigLobby mod, I disabled the filter(only lobbies with the mod) so I can join regular lobbies. This works fine on Windows PD2 via Wine, Linux however with blt4l joining the lobby crashes the game.

As it's a large mod, any idea of finding the cause outside my lua mod? Since it works fine on Windows it's presumably either something to do with linux version of PD2 or blt4l hit a snag?

Disabling the mod I can join regular lobbies just fine. I'm running Manjaro(Arch) 64-bit with XFS filesystem.

Breaks on launch with errors about library versions

Launch options env LD_PRELOAD="$LD_PRELOAD ./libblt_loader.so" %command% 2>&1 | tee /tmp/payday2.log:

ERROR: ld.so: object '/home/lense/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lense/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/lense/.local/share/Steam/SteamApps/common/PAYDAY 2/payday2_release: /home/lense/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by ./libblt_loader.so)
/home/lense/.local/share/Steam/SteamApps/common/PAYDAY 2/payday2_release: /home/lense/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./libblt_loader.so)
/home/lense/.local/share/Steam/SteamApps/common/PAYDAY 2/payday2_release: /home/lense/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./libblt_loader.so)
/home/lense/.local/share/Steam/SteamApps/common/PAYDAY 2/payday2_release: /home/lense/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./libblt_loader.so)

This is on 64-bit Arch Linux. Steam LD_PRELOADs it's own versions of a bunch of things, which apparently break compatibility. I guess everyone else just uses those versions on their host?

Game crashes on startup

Using LD_PRELOAD loads library correctly although only if game folder path contains no spaces.
On game start. libblt_loader.so attempts to find glibc but fails using steam's prepackaged libstdc++6 and force closes.
Temporary fix possible by overwriting steam's libstdc++ version with symlink to system library
(debian stretch, x86_64)

libblt_loader

Hi, i've downloaded the loader, run install.sh,no errors. a folder installer_build is made, containing folder cmakefiles and cmakecache.txt and that's about it, there's no libblt_loader.so, and also the lua folder is empty. Can you help me? Thanks

Missing License

Hi, so I was trying to make a AUR package for this, when I came across the fact that you don't appear to have any license specified anywhere.

As a result, your repo currently exists in a very grey legal area. Please to fix, thanks.

how to set `LD_PRELOAD` for the PAYDAY2 process

First of I am sorry if this is the wrong place, just delete this if you want.

I have absolutley no Idea how to set LD_PRELOAD for the PAYDAY2 process, could you maybe explain that a bit better in the readme?

dohttpreq problems.

It appears that for a semi-large file download ~20mb zip it ends up ending short, returning the downloaded data which is not complete. I've also noticed that it appears that it doesn't call the progress callback function when it's downloading the file. Or if it does call it, it doesn't call it with the correct data for the downloaded file, by that I'm referring to the downloaded and total bytes.

Issue with file.DirectoryExists

I'm unable to get file.DirectoryExists to ever return true for any directories that exist in the PAYDAY 2 directory.

Executing this line should always return true/positive, but it doesn't (for me atleast)

log(tostring(file.DirectoryExists("./mods/")))

How to set $STEAM_LIBRARY to steam library

I start the install.sh with sudo, but then it asks me to set $STEAM_LIBRARY to my library. My Payday2 is installed at /media/duder963/Games/Steam/steamapps/common, so what would I put to set $STEAM_LIBRARY to that?

Running CMake : Failed

I went to run ./install.sh and i get the error:
Running CMake: Failed Please see the CMake log at /home/tyler/Downloads/blt4l-master/installer_build/installer_cmake.log

and i go into the file and the error reads

`-- Configuring done
CMake Error at CMakeLists.txt:31 (add_library):
Cannot find source file:

subhook/subhook.c

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

CMake Error: CMake can not determine linker language for target: blt_loader
CMake Error: Cannot determine link language for target "blt_loader".
-- Generating done
-- Build files have been written to: /home/tyler/Downloads/blt4l-master/installer_build `

Any Help? Thanks

Fails on Arch Linux

Would not build after cloning the repo. Build fails to find subhook.h despite it clearly being in the src directory. Did not pursue this strongly, however.

Installed using the release version 1.1 build 4. Had dep issues at first, but resolved those. One sticky issue is that /usr/lib{,32}/libssl.so.1.0.2 does not exist, despite the package version being at 1.0.2. The symlink to libssl.so is from a file called libssl.so.1.0.0. Manually symlinking to libssl.so.1.0.2 got rid of the libssl.so.1.0.2 error output when launching the game, but it still fails with the following output:

Game update: AppID 218620 "PAYDAY 2", ProcID 14847, IP 0.0.0.0:0
ERROR: ld.so: object '/home/drew/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/drew/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/drew/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
dlHandle = 0x7f4db37cd110
Game removed: AppID 218620 "PAYDAY 2", ProcID 14847 
No cached sticky mapping in ActivateActionSet.Installing breakpad exception handler for appid(steam)/version(1459463254)

Not much to go on, but hopefully we'll get this sorted.

Crashing when returning to menu

As the title says.

Appears to be related to a mod, as it doesn't happen with a fresh mods folder. However, I've got no clues on which mod is causing it due to no helpful information in the logs aswell as no crash log.

I'm gonna do some testing with disabling mods to see what could be causing it.

KeyError: 'apps'

snp@snp-desktop:~/blt4l$ STEAM_LIBRARY=/media/snp/Ubuntu_Data/SteamLibrary ./install.sh
Checking for libcurl4-openssl-dev
Checking for zlib1g-dev
Checking for cmake
Checking for build-essential
-- Configuring done
-- Generating done
-- Build files have been written to: /home/snp/blt4l/installer_build
[100%] Built target blt_loader
Looking for payday2_release... this could take a moment
Traceback (most recent call last):
File "/home/snp/blt4l/installer/enable_blt_wrapper.py", line 13, in
vdf.kv['UserLocalConfigStore']['Software']['Valve']['Steam']['apps']['218620']['LaunchOptions'] = 'env LD_PRELOAD=\"$LD_PRELOAD ./libblt_loader.so\" %command%'
KeyError: 'apps'
Traceback (most recent call last):
File "/home/snp/blt4l/installer/enable_blt_wrapper.py", line 13, in
vdf.kv['UserLocalConfigStore']['Software']['Valve']['Steam']['apps']['218620']['LaunchOptions'] = 'env LD_PRELOAD=\"$LD_PRELOAD ./libblt_loader.so\" %command%'
KeyError: 'apps'
Launch parameters for PAYDAY 2 on all your Steam Profiles have been set to load BLT

I'm a bit out of my depth with this, any help would be appreciated.

I was originally also getting errors about not finding the dir, so i manually set the steam library. but i have no idea about this one

Missing link on mods folder

System: Linux Mint Mate 18.1 x64

I clone this repo and run ./install.sh:

$ ./install.sh
Updating submodules: OK
Looking for CMakeLists.txt: Found
Checking for libcurl4-openssl-dev: Installed
Checking for zlib1g-dev: Installed
Checking for cmake: Installed
Checking for build-essential: Installed
Looking for PAYDAY 2: Not Found
  The PAYDAY 2 install location could not be determined.
  If you have a steam library located outside of /home/toby3d/.steam/steam,
  you should set $STEAM_LIBRARY to point to it
$ export STEAM_LIBRARY=/home/toby3d/.steam/steam/
$ ./install.sh
Updating submodules: OK
Looking for CMakeLists.txt: Found
Checking for libcurl4-openssl-dev: Installed
Checking for zlib1g-dev: Installed
Checking for cmake: Installed
Checking for build-essential: Installed
Looking for PAYDAY 2: /home/toby3d/.steam/steam/steamapps/common/PAYDAY 2/payday2_release
Looking for Steam configs: 1 found
cmake '/home/toby3d/blt4l/CMakeLists.txt' -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS='-march=native -mtune=native' -DCMAKE_C_FLAGS='-march=native -mtune=native'
Looking for installer_build: Found
Running CMake: OK
Building BLT: OK
Looking for libblt_loader.so: Found
Installing loader: OK
Looking for ../lua/Payday-2-BLT-Lua/mods: Found
Installing lua base: OK
Configuring steam: ...
... /home/toby3d/.steam/steam/userdata/83843512/config/localconfig.vdf: OK
... You may need to restart steam for these changes to take effect.

After that I found missing link on mods directory in PAYDAY 2 folder:
image

Probleme to find PAYDAY 2 install directory

prbblt4l
it says to point steam library but I don't know how, payday 2 is in ~/home/me/.local/share/steam/....

Ubuntu 16.04 LTS 64bits
processor Intel® Core™ i5-4210U CPU @ 1.70GHz × 4
graphics GeForce 840M/PCIe/SSE2

Any help would be appreciated, thanks

JMP offsets to enter in to blt4l exceed the maximum value of a 32-bit integer

Currently, SubHook uses the JMP opcode E9 in order to perform a relative jump to the target function.

Due to the way that BLT4L is loaded, our functions live in address space that is extremely far from the LUA function calls we need access to.

The actual jump offsets we would need to use are larger than a signed 32-bit integer would allow. Unfortunately, 0xE9 expects a signed paramater in order to support backward jumps.

Inside subhook_make_jmp, the result of the offset calculation is cast to (int32_t) which truncates the jump value, and can result in a negative jump when a positive jump is needed, not to mention that the jump offset is far to small on the order of several magnitudes.

file.GetFiles making the game unresponsive

OS: Linux Mint 17.3 Cinnamon
blt4l Version: 1.1-r8_Ubuntu-precise-steamrt

When loading into a heist it gets stuck as it errors out when attempting to execute many mod lua files, which executed fine when loading into the menu.

This pastebin should include the entire list of mods that are being loaded and the error list. These errors only show when loading into a heist, I can load into the menu just fine and all the mods, including the ones that error in the shown log work.

libblt_loader.so error

I get this when running sh install.sh both with sudo and without.

Checking for libcurl4-openssl-dev
Checking for zlib1g-dev
Checking for cmake
Checking for build-essential
-- Configuring done
-- Generating done
-- Build files have been written to: /home/bogdan/Downloads/blt4l/installer_build
[100%] Built target blt_loader
Looking for payday2_release... this could take a moment
cp: ‘/home/bogdan/Downloads/blt4l/installer_build/libblt_loader.so’ and ‘./libblt_loader.so’ are the same file
Traceback (most recent call last):
File "/home/me/Downloads/blt4l/installer/enable_blt_wrapper.py", line 13, in <module>
vdf.kv['UserLocalConfigStore']['Software']['Valve']['Steam']['apps']['218620']['LaunchOptions'] = 'env LD_PRELOAD=\\"$LD_PRELOAD ./libblt_loader.so\\" %command%'
KeyError: 'apps'
Launch parameters for PAYDAY 2 on all your Steam Profiles have been set to load BLT

symbol lookup error

symbol lookup error: ./libblt_loader.so: undefined symbol: CRYPTO_num_locks

Game runs as normal without it.

ldd:
linux-vdso.so.1 (0x00007ffdde438000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f26927c6000) libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f2692546000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2692326000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2691f9e000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2691c96000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2691a7e000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f26916de000) /lib64/ld-linux-x86-64.so.2 (0x0000556f8cd8e000) libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f26914b6000) libidn.so.11 => /lib/x86_64-linux-gnu/libidn.so.11 (0x00007f269127e000) librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f269105e000) libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f2690e2e000) libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6 (0x00007f2690bf6000) libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f2690856000) libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f2690606000) libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f2690326000) libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f26900ee000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f268fee6000) liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f268fcd6000) libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f268fa7e000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f268f85e000) libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4 (0x00007f268f626000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f268f39e000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f268f08e000) libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f268ee26000) libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f268ec0e000) libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f268e9fe000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f268e7f6000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f268e5de000) libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f268e3be000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f268e1a6000) libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f268df96000)

symbol std::__cxx11::basic_string…, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6

Had this issue after compiling from source —on Ubuntu 15.10—,

payday2_release: relocation error:  /home/john/code/blt4l/build/libblt_loader.so: symbol
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_,
version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

Resolved it by defining -D_GLIBCXX_USE_CXX11_ABI=0 in CMakeLists.txt
Not posting as a PR because I don’t know full ramifications for users on other distros..

Cmake problem

Me again, I recently changed my main hard drive, and so re installed BLT4L but:
cmketer
cmakelog

And again I'm not a Linux pro so I don't know what to do, if someone could help please?
Thanks.

Ubuntu 16.04 LTS 64bits
Processor Intel® Core™ i5-4210U CPU @ 1.70GHz × 4
Graphics GeForce 840M/PCIe/SSE2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.