Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repentogon doesn't work after succesful install #588

Open
Samada45 opened this issue Nov 15, 2024 · 38 comments
Open

Repentogon doesn't work after succesful install #588

Samada45 opened this issue Nov 15, 2024 · 38 comments

Comments

@Samada45
Copy link

Samada45 commented Nov 15, 2024

downloaded updater from github, succesful installation, doesn't work. No in-game bottom right corner text that it works, A mod that uses repentogon doesn't work and i have giant red text saying it's not installed properly when i launch the game. Tried manually coyping files and installing same thing.

@epfly6
Copy link
Collaborator

epfly6 commented Nov 15, 2024

And?

@namishere
Copy link
Collaborator

Please define not working; please check for presence of (and post if it exists) dsound.log, libzhl.log, and repentogon.log; these will all be in the root folder where repentogon should be installed

@Samada45
Copy link
Author

edited first post, accidentally pressed enter with blank sheet. Dsound log

[Options]
CheckForUpdates = 1

[internal]
RanUpdater = 0

other 2 files are not present in my game dir

@namishere
Copy link
Collaborator

that's dsound.ini. can you verify how and where you installed repentogon?

@Samada45
Copy link
Author

downloaded latest Repentogonupdater, dropped it in The Binding of Isaac Rebirth folder (located it through steam), ran it, it downloaded the rest of files, said that the installation was succesful but when i launch the game either from steam or through isaacng.exe i don't see anywhere that repentogon works and when i launch a fresh run i see big red text saying it's noy installed properly

@namishere
Copy link
Collaborator

namishere commented Nov 15, 2024

you are potentially suffering from an issue where our dsound.dll hook does not work. while it's not in a release-ready state, a new launcher solution that we intend to switch to recently entered alpha state. you might try it and see if that works better https://github.com/TeamREPENTOGON/Launcher/releases/tag/v0.1.0-alpha

@namishere
Copy link
Collaborator

@Samada45
Copy link
Author

windows defender screams it's bad, i assume nothing to worry about?

@namishere
Copy link
Collaborator

namishere commented Nov 15, 2024

I'm a little surprised that it's upset about the launcher even after being signed, (disregard, it's not actually signed) but it's a false positive

@Samada45
Copy link
Author

Samada45 commented Nov 15, 2024

when using launcher 2 errors, missing ucrtbased.dll and vcruntime140d.dll, Am i missing some frameworks or other essentials?
I'm on Win11
tried installing vsreddist but it says that i already have it installed

@jsgnextortex
Copy link
Collaborator

The launcher is actually not ready for the public yet, those dlls are debugging dlls that we need internally to properly traceback issues with it, they wont be needed when we poop it out....if you are truly having the issue where the game doesnt load dsound.dll at all then you'll need to wait until we release the launcher proper to use repentogon.

@namishere
Copy link
Collaborator

It's true that it isn't ready for public, but I personally think it's worth having extra eyes on it as necessary. The missing dlls are debug variants, I found an older gl issue on github where someone dumped specifically those ones WHTJEON/narrowvine#2

@phrogge
Copy link

phrogge commented Nov 16, 2024

I don't think the alpha version of the launcher solves the problem for me. I'm one of those unlucky players whose PC doesn't load dsound.dll and simply starts the game without RGON (no errors or anything). The issue is that the same happens with the launcher, even though I have selected the correct isaac-ng.exe and changed the launch mode to "Repentogon".

The launcher does give me these warnings:
[WARN] Installation of Repentogon contains both the ZHL loader and dsound.dll. For safety, the launcher will ignore the ZHL loader.
[WARN] Found a valid legacy installation of Repentogon (dsound.dll found)
[WARN] Disabling Repentogon configuration options due to legacy installation

I tried deleting dsound.dll in hopes that it would make the launcher use the loader, but when I did, it couldn't find Repentogon at all. Is there anything else I can do?

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

In the launcher, click "Advanced Options" and upgrade to unstable Repentogon, instead of stable.

Right now what is happening is that the launcher downloads a dsound.dll based Repentogon because it downloads stable releases by default. This means your libzhl.dll and zhlRepentogon.dll are not properly setup to work with the launcher. Upgrading to an unstable Repentogon release should fix the issue.

If you can try this and come back to us, that would be very appreciated as it would be the first instance of someone with a non working dsound based installation using the launcher.

If it still doesn't work, please send us your launcher.log file

@phrogge
Copy link

phrogge commented Nov 16, 2024

Upgrading to the latest unstable version removed the warnings, but, as far as I can tell, the game still launches without RGON. At least, I don't see anything RGON-related on the title screen, and the console window is completely unchanged.

Here's my launcher.log.
launcher.log

@jsgnextortex
Copy link
Collaborator

Did a libzhl.log and/or zhl.log and/or Repentogon.log generate, if so, can we take a look at those?

@phrogge
Copy link

phrogge commented Nov 16, 2024

It doesn't generate libzhl.log, but here are the other two:
zhl.log
repentogon.log

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

There should be an additional file called zhlLoader.log, can you send us that one as well ?

@phrogge
Copy link

phrogge commented Nov 16, 2024

There you go:
zhlLoader.log

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

I added some logs in Repentogon in order to better understand what is happening. Can you do the following:

  1. Exit the launcher
  2. Delete all .log files in the Isaac folder (just to be sure we are in a clean state)
  3. Start the launcher > Advanced Options > Upgrade Repentogon (unstable release)
  4. Assuming the update downloads properly (it should; the launcher should be talking about 1.1.0-testing-launcher-4), launch Repentogon from the launcher, then come back to us with the following files : zhlLoader.log, launcher.log, repentogon.log and zhl.log

Thank you

@phrogge
Copy link

phrogge commented Nov 16, 2024

It does say "4" here:

[RepentogonUpdater] Successfully downloaded content from https://github.com/TeamREPENTOGON/REPENTOGON/releases/download/1.1.0-testing-launcher-4/REPENTOGON.zip

But then:

Found a valid installation of Repentogon (version 1.1.0-testing-launcher-3)
Suscessfully updated Repentogon to version 1.1.0-testing-launcher-3
State of the current Repentogon installation:
ZHL version: 1.1.0-testing-launcher-3 (updated from 1.1.0-testing-launcher-3)
ZHL loader version: 1.1.0-testing-launcher-3 (updated from 1.1.0-testing-launcher-3)
Repentogon version: 1.1.0-testing-launcher-3 (updated from 1.1.0-testing-launcher-3)

So I'm not exactly sure which version it's trying to use.

Anyway, here are the .log files:
launcher.log
repentogon.log
zhl.log
zhlLoader.log

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

Little oversight on my end, forgot to update the version internally, I've checked the logs it's all good, you're on the latest pre release

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

I'm having a very precise idea of where the issue is, though I'm still not sure of what is triggering it. I've pushed a new unstable version of Repentogon, can you repeat the same steps as before and upload the files once they are ready ? Thank you (also the version string should be good this time :) )

@phrogge
Copy link

phrogge commented Nov 16, 2024

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

Can you repeat the procedure one more time ? I may have identified why it doesn't work for you and I have uploaded a new unstable release, but it's still only suppositions

@phrogge
Copy link

phrogge commented Nov 16, 2024

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

I've uploaded a new unstable release. It doesn't change anything logic-wise, but it adds even more logs so we may figure out what is happening. Can you repeat the procedure again ?

I'm sorry about how this debug works :x Unfortunately none of us are able to reproduce the issue locally, and without direct access to your setup there is no way for us to come up with a definitive solution, we can only make guesses and progressively check which ones are correct and which ones are incorrect.

To give you an idea of what is happening, Repentogon is closer to starting than it has ever been. Previously, your setup did not even load ZHL (the DLL that setups everything in memory) nor did it load Repentogon. Now, your setup loads ZHL (which is probably the most important step, without ZHL Repentogon would do nothing), but it fails to load Repentogon. My theory right now is that the game does not start in a suspended state, and the latest unstable release should tell us about that.

Thank you for bearing with us

@phrogge
Copy link

phrogge commented Nov 16, 2024

Yeah, no problem.

launcher.log
repentogon.log
zhl.log
zhlLoader.log

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

Here's a different version of libzhl.dll (in a zip file because Github won't allow direct upload of a DLL file). Please extract it next to the game and start Repentogon from the launcher. The game should crash pretty much instantly.

The previous test showed that the game is properly suspended, as we expect. With this test I want to check if the changes made in memory to the game are seen by the game or not. If the game crashes then the changes are seen, and there may be an issue with what we do when we change memory. If the game does not crash then the changes are not seen, and we can start investigating why.

Thank you in advance

libzhl.zip

@namishere
Copy link
Collaborator

Could this possibly be an issue from using a Debug compiled launcher without the full debug redistributables installed? I initially linked just the two dlls the launcher asked for in order to launch.

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 16, 2024

No. If that was the problem then either:

  • The launcher wouldn't start at all, and there would be an error message indicating that the debug runtime is missing
  • The calls to LoadLibrary would fail because there would be unresolved dependencies. We know libzhl.dll is loaded because there are logs from libzhl.dll that are printed. repentogon.dll does not load because the code that loads it does not run in main for an unknown reason, and this happens before the call to LoadLibrary that should load Repentogon

However, even if I think that's not possible, we should check that hypothesis. If my latest suggestion is not conclusive I'll release an unstable Release build of Repentogon just to check

@jsgnextortex
Copy link
Collaborator

jsgnextortex commented Nov 16, 2024

I already tested the exact situation phrogge described with just copying the debug dlls to the isaac folder on a system without them and it worked just fine, so I dont think thats a lead of any kind, no. Copying the provided dlls should be enough.

@phrogge
Copy link

phrogge commented Nov 17, 2024

Here's a different version of libzhl.dll (in a zip file because Github won't allow direct upload of a DLL file). Please extract it next to the game and start Repentogon from the launcher. The game should crash pretty much instantly.

I replaced libzhl.dll with the new one, but the game launched as usual, no crashes.
Here are the logs, just in case.
launcher.log
repentogon.log
zhl.log
zhlLoader.log

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 17, 2024

I finally realized what the issue is : your game is simply not starting with Repentogon injected in it. We can see it by checking the logs:

From last night:
[INFO] [2024-11-16 20:59:54] Started isaac-ng.exe in suspended state, processID = 10176
[INFO] [2024-11-16 20:59:55] isaac-ng.exe completed, shutting down injector

From the very last test your did:
[INFO] [2024-11-17 09:00:39] Started isaac-ng.exe in suspended state, processID = 9848
[INFO] [2024-11-17 09:00:39] isaac-ng.exe completed, shutting down injector

We can see the game dies less than one second after being launched, yet you say the game ran fine. I have a theory as to why : Steam is detecting changes in the memory and it shuts down the game before restarting it, without Repentogon obviously because there is no longer anything injected in memory. This is something I've already seen happen (in fact when I started suspecting this is what's happening, I remembered it happening to me two years ago).

Here's what I would like you to try: do not change any DLLs, simply drop this file right next to your Isaac executable:
steam_appid.txt

Then, as usual, delete all log files, and start Repentogon from the launcher. Thank you very much :)

@phrogge
Copy link

phrogge commented Nov 17, 2024

This time the game crashed immediately (no errors, just closed itself a second after launching).
launcher.log
repentogon.log
zhl.log
zhlLoader.log

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 17, 2024

Excellent ! Perfect, this is exactly what should have happened ! This means my theory was correct, it was Steam all along (the steam_appid.txt file prevents Steam from doing some sanity checks regarding memory, Antibirth used it as well) !

What you can do now is start the launcher > Advanced Options > force update Repentogon to latest unstable release, it will give you a clean libzhl.dll. Be sure to keep the steam_appid.txt file next to your Isaac executable ! Once the update is done, try launching Repentogon from the launcher. This time it should work.

@phrogge
Copy link

phrogge commented Nov 17, 2024

Yep, it's finally working.

@Sylmir
Copy link
Collaborator

Sylmir commented Nov 17, 2024

Thank you so much for bearing with us, I'll update the launcher so that it adds the steam_appid.txt file before starting the game. Your testing was invaluable 🥇

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants