aymericingargiola / repentance-run-tracker

The Binding Of Isaac: Repentance run tracker app
MIT License
17 stars 1 forks source link

Linux/Steam Deck support #51

Closed CommandMC closed 2 years ago

CommandMC commented 2 years ago

This is an initial attempt at supporting Linux (and by extension the Steam Deck) I've gotten the app to load, and the game is detected as running in the backend, but the frontend is somewhat borked, with most of the elements being invisible (yet still displayed as being loaded in Vue's dev tools). Any mounted() events are not executed. First time I'm working with Vue (and "pure" JS at all), so I'm not sure why this issue is happening. Maybe someone else is able to take it from here :^)

aymericingargiola commented 2 years ago

Thanks a lot i'll check that !

I have a Steam Deck also by the way, i'll check on it as soon as i can

ER-95 commented 2 years ago

Does this now work on Linux/SteamOS?

aymericingargiola commented 2 years ago

Does this now work on Linux/SteamOS?

I'm working on it, a first version will be available very quick

ER-95 commented 2 years ago

...I sent my Steam Deck back yesterday - wishing I hadn't now!

aymericingargiola commented 2 years ago

@CommandMC can you try the linux build i'v done (AppImage) ? https://github.com/aymericingargiola/repentance-run-tracker/releases/tag/v0.7.14

Wiki page : https://github.com/aymericingargiola/repentance-run-tracker/wiki/Steam-Deck-support-(Linux)

CommandMC commented 2 years ago

I'll give it a shot soon. Some comments:

You must run the game before running the app, i didn't find a way to watch if isaac is running or not on Linux at the moment.

This was working perfectly fine in my build

You need to find the folder of your game in '/home/deck/.steam/steam/steamapps/compatdata/', for exemple mine is "250900" :

The name of this folder is TBoI's Steam Game ID, it's always going to be the same for everyone

aymericingargiola commented 2 years ago

@CommandMC It was working

This was working perfectly fine in my build

It was a native linux AppImage build ? I think you did run your build through proton no ?

The name of this folder is TBoI's Steam Game ID, it's always going to be the same for everyone

Ohh thanks i'll edit that

CommandMC commented 2 years ago

Nope, native Linux build. I was unable to build an AppImage due to the auto-updater failing, but I did test my changes live by running npm run electron:serve

aymericingargiola commented 2 years ago

Nope, native Linux build. I was unable to build an AppImage due to the auto-updater failing, but I did test my changes live by running npm run electron:serve

Oh nice, npm run electron:serve did not work on my steam deck (only npm run electron:build), you worked on a different environment ?

CommandMC commented 2 years ago

I'm on a regular Arch Linux install, yes Development on the Steam Deck will be a pain I imagine

aymericingargiola commented 2 years ago

I'm on a regular Arch Linux install, yes Development on the Steam Deck will be a pain I imagine

Ok thanks i'll have to build a VM then i think...

CommandMC commented 2 years ago

Anyways, getting this error when starting a run:

New run generated checking previous runs...
New run generated checking previous runs...
Failed to read /img/cards/bar-small-left_01_noshadow.png on app protocol Error: ENOENT, img/cards/bar-small-left_01_noshadow.png not found in /tmp/.mount_RepentqSbsH0/resources/app.asar
    at createError (node:electron/js2c/asar_bundle:5:1255)
    at fsReadFileAsar (node:electron/js2c/asar_bundle:5:7706)
    at e.readFile (node:electron/js2c/asar_bundle:5:8838)
    at Function.<anonymous> (/tmp/.mount_RepentqSbsH0/resources/app.asar/background.js:2:1272105) {
  code: 'ENOENT',
  errno: -2
}
aymericingargiola commented 2 years ago

Anyways, getting this error when starting a run:

New run generated checking previous runs...
New run generated checking previous runs...
Failed to read /img/cards/bar-small-left_01_noshadow.png on app protocol Error: ENOENT, img/cards/bar-small-left_01_noshadow.png not found in /tmp/.mount_RepentqSbsH0/resources/app.asar
    at createError (node:electron/js2c/asar_bundle:5:1255)
    at fsReadFileAsar (node:electron/js2c/asar_bundle:5:7706)
    at e.readFile (node:electron/js2c/asar_bundle:5:8838)
    at Function.<anonymous> (/tmp/.mount_RepentqSbsH0/resources/app.asar/background.js:2:1272105) {
  code: 'ENOENT',
  errno: -2
}

Well unfortunately i'm not able to test this, on the Steam Deck it's working, i'm able to play and record runs, but i can't test the app in dev mode at the moment. You think the enviroments are a lttile bit different from Steam Deck to default Arch Linux ? Or maybe "electron:serve" is doing strange things

CommandMC commented 2 years ago

I'm on a regular Arch Linux install, yes Development on the Steam Deck will be a pain I imagine

Ok thanks i'll have to build a VM then i think...

GH Actions are always a possibility. I could set that up for you

CommandMC commented 2 years ago

Well unfortunately i'm not able to test this, on the Steam Deck it's working, i'm able to play and record runs, but i can't test the app in dev mode at the moment. You think the enviroments are a lttile bit different from Steam Deck to default Arch Linux ? Or maybe "electron:serve" is doing strange things

Extracting the ASAR file, the image mentioned is indeed not there: image Not sure how it's working on the Deck

There is a right_01_noshadow.png and a mid_01_noshadow.png, but no left_01_noshadow.png

BensDream commented 2 years ago

If it's native I'm not sure that works - isn't one of the DLCs missing natively on Linux?

aymericingargiola commented 2 years ago

Well unfortunately i'm not able to test this, on the Steam Deck it's working, i'm able to play and record runs, but i can't test the app in dev mode at the moment. You think the enviroments are a lttile bit different from Steam Deck to default Arch Linux ? Or maybe "electron:serve" is doing strange things

Extracting the ASAR file, the image mentioned is indeed not there: image Not sure how it's working on the Deck

Yeah i see, i have this error on windows too but client side it's not crashing the app (as the Steam Deck), i should clean that anyway, it's calling an unwanted image

CommandMC commented 2 years ago

If it's native I'm not sure that works - isn't one of the DLCs missing natively on Linux?

The Tracker runs natively, you can still run the game itself through Proton

aymericingargiola commented 2 years ago

If it's native I'm not sure that works - isn't one of the DLCs missing natively on Linux?

No this is not an issue if the game is running through proton to have Repentance it is nedeed in fact, only the app is native !

aymericingargiola commented 2 years ago

You must run the game before running the app, i didn't find a way to watch if isaac is running or not on Linux at the moment.

This was working perfectly fine in my build

@CommandMC It does works perfectly fine on linux indeed ! I revert it.

You need to find the folder of your game in '/home/deck/.steam/steam/steamapps/compatdata/', for exemple mine is "250900"

The name of this folder is TBoI's Steam Game ID, it's always going to be the same for everyone

I let the setting but by default it's already this number so no more user action required.

Next step i'll have to clean a bit to avoid front-end error and loading files that dosen't exist, i'v updated AppImage build on last release page

BensDream commented 2 years ago

Just to be sure, is this now fully functional on Deck?

aymericingargiola commented 2 years ago

@BensDream yes it does from what i'v tested so far, but the mod i'v done to show hearts, coins, keys... on the app isn't automatically installed yet i have to work on that too

BensDream commented 2 years ago

Does that part work if you enter the path manually? Or does it just not work at all?

aymericingargiola commented 2 years ago

Not at all, you don't have to do anything manually from the last build (updated on the release page : https://github.com/aymericingargiola/repentance-run-tracker/releases/tag/v0.7.14)

BensDream commented 2 years ago

Oh, I see - so at the moment do hearts/keys/coins work on Deck? I'm not sure I understand

aymericingargiola commented 2 years ago

@BensDream No it doesn't the mod isn't installed yet, i have to work on that

BensDream commented 2 years ago

Ah, I see - is it likely that this will be possible to fix? I'm wondering if I could cancel the return of my Deck if so

aymericingargiola commented 2 years ago

Yes it will of course, in fact today you can still add the mod folder manually, you juste have to right click on the game in steam and open the game folder then copy the "mod" location to the app settings

BensDream commented 2 years ago

Ah perfect! So if I do it manually, everything is fully functional on Deck?

aymericingargiola commented 2 years ago

@BensDream Yes, I have updated the wiki 😄 https://github.com/aymericingargiola/repentance-run-tracker/wiki/Steam-Deck-support-(Linux)

ER-95 commented 2 years ago

Just tried this myself - I'm getting this error on Deck... image

ER-95 commented 2 years ago

If it matters, I have the game installed on an SD card

aymericingargiola commented 2 years ago

If it matters, I have the game installed on an SD card

Oh maybe this is the issue, i never installed a game on an sd card, i have to check that

Can you check if you can access this folder ? "/home/deck/.steam/steam/steamapps/compatdata/"

ER-95 commented 2 years ago

@aymericingargiola I can, yep - and it has 250900 in there

ER-95 commented 2 years ago

repentance_run_tracker_error_dump-09-26-22-113315AM.zip

[2022-09-26 11:23:22.896] [info] App is starting... | App Version : 0.7.14 | Node version : v16.15.0 | Electron version : 20.1.4 [2022-09-26 11:23:23.220] [info] Cleaning backups... [2022-09-26 11:23:23.230] [error] There is no backups in /home/deck/.config/repentanceruntracker/backups/ [2022-09-26 11:23:23.250] [info] Checking runs... [2022-09-26 11:23:23.252] [info] Checking runs done [2022-09-26 11:23:24.310] [info] Resolving linux paths... [2022-09-26 11:23:24.313] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:23:24.466] [info] Resolving linux paths... [2022-09-26 11:23:24.467] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:23:31.921] [info] Creating app datas backup zip file... [2022-09-26 11:23:32.021] [info] App datas backup created [2022-09-26 11:23:32.022] [info] Closing app... [2022-09-26 11:23:36.899] [info] App is starting... | App Version : 0.7.14 | Node version : v16.15.0 | Electron version : 20.1.4 [2022-09-26 11:23:37.211] [info] Cleaning backups... [2022-09-26 11:23:37.228] [info] Cleaning backups done [2022-09-26 11:23:37.245] [info] Checking runs... [2022-09-26 11:23:37.247] [info] Checking runs done [2022-09-26 11:23:38.266] [info] Resolving linux paths... [2022-09-26 11:23:38.267] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:23:38.483] [info] Resolving linux paths... [2022-09-26 11:23:38.485] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:24:18.501] [info] Creating app datas backup zip file... [2022-09-26 11:24:18.606] [info] App datas backup created [2022-09-26 11:24:18.607] [info] Closing app... [2022-09-26 11:25:47.866] [info] App is starting... | App Version : 0.7.14 | Node version : v16.15.0 | Electron version : 20.1.4 [2022-09-26 11:25:48.226] [info] Cleaning backups... [2022-09-26 11:25:48.247] [info] Cleaning backups done [2022-09-26 11:25:48.261] [info] Checking runs... [2022-09-26 11:25:48.263] [info] Checking runs done [2022-09-26 11:25:49.280] [info] Resolving linux paths... [2022-09-26 11:25:49.287] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:25:49.488] [info] Resolving linux paths... [2022-09-26 11:25:49.489] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:27:11.966] [info] Creating app datas backup zip file... [2022-09-26 11:27:12.058] [info] App datas backup created [2022-09-26 11:27:12.059] [info] Closing app... [2022-09-26 11:33:00.036] [info] App is starting... | App Version : 0.7.14 | Node version : v16.15.0 | Electron version : 20.1.4 [2022-09-26 11:33:00.525] [info] Cleaning backups... [2022-09-26 11:33:00.557] [info] Cleaning backups done [2022-09-26 11:33:00.579] [info] Checking runs... [2022-09-26 11:33:00.582] [info] Checking runs done [2022-09-26 11:33:02.005] [info] Resolving linux paths... [2022-09-26 11:33:02.008] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:33:02.182] [info] Resolving linux paths... [2022-09-26 11:33:02.184] [error] Linux Path Doesn't Exist : /home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/options.ini [2022-09-26 11:33:15.020] [info] Creating error zip file...

aymericingargiola commented 2 years ago

@xEden95x Can you check if you can reach "/home/deck/.steam/steam/steamapps/compatdata/250900/pfx/drive_c/users/steamuser/Documents/My Games/Binding of Isaac Repentance/" and have an options.ini file ?

ER-95 commented 2 years ago

Ah, it looks like I had to run the game first - it seems to be working now!

Is there any way of running the app in SteamOS' gaming mode rather than desktop mode?

aymericingargiola commented 2 years ago

@xEden95x good !

Is there any way of running the app in SteamOS' gaming mode rather than desktop mode?

I have no clue actually i was thinking about that but it seems not possible because we can't launch AppImage from game mode, and we can't launch 2 app that are not in the same container in game mode (wich is not possible because the app is not running from Isaac's proton container).

ER-95 commented 2 years ago

Understood! Is it possible to run the game itself from Game Mode, but the app from desktop mode?

Also, just to check - are there any plans to implement a tracker for the length of a run? And will Linux/Steam Deck support be continued going forwards?

aymericingargiola commented 2 years ago

Understood! Is it possible to run the game itself from Game Mode, but the app from desktop mode?

No you can't have game mode and desktop mode at the ame time (it reloads the gui), so the only solution from now is to play Isaac in desktop mode and put isaac in full screen, you can add custom shortcuts to switch from fullscreen to windowed with steam decks buttons i'll try this and update the wiki so it will be easier and more convenient

Also, just to check - are there any plans to implement a tracker for the length of a run?

I'm not sure to understand, you mean a smaller tracker just for a run ? I have something yes but it is not finished yet ! It was mainly for streamers, just showing floors and items with a green background

And will Linux/Steam Deck support be continued going forwards?

Yes as long as i have a steam deck !

ER-95 commented 2 years ago

For the second question - I mean something that tracks the length of the run inside the current app - I saw there's a field for it, but I'm not sure if it populates automatically?

aymericingargiola commented 2 years ago

@xEden95x Yes it is filled automatically ! Without my mod it does an aproximation (starting date time - run end date time) that's why you can edit it, but with the mod you have the exact game time as it shows in the game since pauses are not counted, i encourage you to install the mod (explained in the wiki)

ER-95 commented 2 years ago

Ah excellent! Sorry, just one final question - when I run the Run Tracker, it seems to make a new folder on my desktop - can this be deleted? It seems to re-create itself each time I remove it.

aymericingargiola commented 2 years ago

Yes i think i don't know what is this folder it doesn't make any folder on my desktop, what do you have inside and what is the name ?

aymericingargiola commented 2 years ago

@xEden95x I have an excellent news, i'm able to launch the game and the app in game mode 😄 I'll update the wiki

Edit : wiki updated

CommandMC commented 2 years ago

So uh, can this get merged now? Even if there are still issues, basic Linux support is present, and I doubt I'll be able to help further than this

aymericingargiola commented 2 years ago

Yes i merge it i wanted to test a little more but at the moment it works at least on the Steam Deck

ER-95 commented 2 years ago

All still working on my end! Game + app in game mode works absolutely perfectly so far