massimilianodelliubaldini / galaxy-integration-rpcs3

GOG Galaxy 2.0 Integration with RPCS3
MIT License
22 stars 6 forks source link

"Plugin has crashed." when linking #20

Closed POD319 closed 4 years ago

POD319 commented 4 years ago

Tried linking up for the first time tonight -- receiving a 'Plugin has crashed' when attempting to 'Connect' within GOG Integrations menu.

A few possible issues I am seeing:

1) "galaxy-integration-rpcs3-master" is the name of the downloaded ZIP, but instructions say -- Rename the galaxy-integration-rpcs3 folder to rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC

I think this is minor as the end result is likely the name shown above. However it makes me question if something has been updated but the instructions have not.

2) "Download a zip of the devita repository and unpack the contents into galaxy-integration-rpcs3/devita"

Upon doing this, the folder structure would be "rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\devita\devita_master\"

However I believe the intent is to unzip the files into the \devita\ folder directly -- as when I try to link the Integration I then see a pycache folder appear. This only appears if files are directly in the devita folder.

3) "Set the main_directory variable to your RPCS3 installation folder"

The default in config.py points to a /bin/ folder, but the latest version of RPCS3 does not have a bin folder.

Beyond those ideas I am unsure why the "Plugin has crashed." message is appearing. Are there any logs for GOG when it attempts to connect? That would help me give a bit more information.

Thanks for any ideas you can recommend!

POD319 commented 4 years ago

Found the log location. Here is the error I am seeing:

2019-12-20 01:50:52,154 - root - DEBUG - Using proactor: IocpProactor
2019-12-20 01:50:52,155 - root - INFO - Using local address: 127.0.0.1:56873
2019-12-20 01:50:52,156 - root - INFO - Creating plugin for platform vision, version 0.63
2019-12-20 01:50:52,156 - root - ERROR - Error while running plugin
Traceback (most recent call last):
  File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\galaxy\api\plugin.py", line 802, in create_and_run_plugin
    asyncio.run(coroutine())
  File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\runners.py", line 43, in run
  File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\base_events.py", line 584, in run_until_complete
  File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\galaxy\api\plugin.py", line 795, in coroutine
    async with plugin_class(reader, writer, token) as plugin:
  File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\plugin.py", line 23, in __init__
    self.config = Config() # If we can't create a good config, we can't run the plugin.
  File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\config.py", line 38, in __init__
    self.dev_hdd0_directory = os.path.normpath(self.find_hdd0())
  File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\config.py", line 59, in find_hdd0
    hdd0 = config['VFS']['/dev_hdd0/']
TypeError: 'NoneType' object is not subscriptable

I see reference to a D:\, but I do not have a D:\

massimilianodelliubaldini commented 4 years ago

Your instincts are correct on all 3 points in your OP. If you wouldn't mind, could you please upload the following:

  1. Your config.py file in it's entirety
  2. A screenshot of the contents of your RPCS3 install directory. It should hopefully contain a config.yml file.
  3. The contents of that config.yml file.
POD319 commented 4 years ago

Thanks for the quick reply! Glady, uploaded the requested files. Note that config.yml is blank?

upload.zip

massimilianodelliubaldini commented 4 years ago

Yeah that'd do it.

So I've got plans to fix a number of these problems.

  1. If the required files in the provided RPCS3 directory are empty, throw a more easily recognizable error.
  2. Move user-configurable values to a YAML file and read from that file, that way user-edited space is separate from code space. Also quicker to upload a separate config file for troubleshooting.
  3. Write an install script for when users download this plugin without git. This should improve user friendliness and cut down on confusion and misconfiguration.
  4. Add a readme header for FAQ, Known Issues, etc.

As far as the D:/ drive you noted, I think that's how GOG's packaged version of python runs. Someone else posted an error log with the exact same file path as in yours.

Thanks for providing all this information, it'll definitely help improve this plugin!

POD319 commented 4 years ago

Glad to help, thanks for working on this! If I can help try anything on my end just let me know. I'll keep an eye out here.

POD319 commented 4 years ago

Thanks for updating. I gave the new one a shot and here is what I found:

Only one thing I got stumbled on in the instructions -- Unpacking the contents of devita leaves you with a folder inside devita called devita-master, but I think the intention is to have the contents of devita-master inside the devita folder.

After I got around that, I am still seeing an error. I can't quite figure this one out. Let me know if you want me to upload something to help. I put my config at the bottom after the logs. It looks like something with the config file but all I am doing is updating my path and I get that error.

2019-12-23 18:11:21,491 - root - DEBUG - Using proactor: IocpProactor 2019-12-23 18:11:21,492 - root - INFO - Using local address: 127.0.0.1:51711 2019-12-23 18:11:21,493 - root - INFO - Creating plugin for platform vision, version 0.63 2019-12-23 18:11:21,493 - root - ERROR - Error while running plugin Traceback (most recent call last): File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\galaxy\api\plugin.py", line 802, in create_and_run_plugin asyncio.run(coroutine()) File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\runners.py", line 43, in run File "D:\obj\Windows-Release\37win32_Release\msi_python\zip_win32\base_events.py", line 584, in run_until_complete File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\galaxy\api\plugin.py", line 795, in coroutine async with plugin_class(reader, writer, token) as plugin: File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\plugin.py", line 23, in init self.config = Config() # If we can't create a good config, we can't run the plugin. File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\config.py", line 38, in init self.dev_hdd0_directory = os.path.normpath(self.find_hdd0()) File "C:\Users\Pat\AppData\Local\GOG.com\Galaxy\plugins\installed\rpcs3_80F9D16B-5D72-4B95-9D46-2A1EF417C1FC\config.py", line 59, in find_hdd0 hdd0 = config['VFS']['/dev_hdd0/'] TypeError: 'NoneType' object is not subscriptable

config.zip

massimilianodelliubaldini commented 4 years ago

Ah, I completely forgot to mention the real problem. Since your config file is empty, there's nothing to read, hence the NoneType error.

RPCS3 only seems to create the config.yml file if you open Settings in the application and save. So try that first, and if it doesn't work, you can replace the file with mine. Note you may still need to go into settings and tweak some things.

config.zip

As for devita, I plan on fixing that with either a script, or by working with a requirements.txt file. Haven't decided yet.

massimilianodelliubaldini commented 4 years ago

So what did the trick? :)

POD319 commented 4 years ago

You nailed it with your last post -- empty config.yml! :P

I opened settings like you mentioned and clicked save and it populated itself.

Successfully linked in GOG a few moments ago, about to test and launch. Thanks for all your support!

massimilianodelliubaldini commented 4 years ago

Perfect. Good to hear it works now!