tsunamods-codes / 7th-Heaven

The Ultimate Mod Manager for Final Fantasy VII PC
https://7thheaven.rocks/
Microsoft Public License
118 stars 24 forks source link

Linux modding tutorial (Wine, Proton, Lutris)...maybe? #19

Closed junglized closed 1 year ago

junglized commented 3 years ago

It's not really a bug but rather tutorial request. I'm on Pop!_OS using Lutris for gaming. Everything works just fine. Unfortunately I can't figure out how to run 7th Heaven with any version of FF7. Could anyone provide a simple tutorial on how to mod FF VII with Wine or Steam + Ptoton version?

Thanks a lot!

julianxhokaxhiu commented 3 years ago

Hi @junglized,

Making 7th working on Linux is currently a painful process. If you can manage to make it work under Wine, then you should be good to go on other layers using it. Porting it natively wouldn't make much sense as you'd need Wine to play the game anyway and hooking the Linux memory process would be too cumberstone.

Consider trying steps described in here to see if you can make it work: https://appdb.winehq.org/objectManager.php?sClass=version&iId=38203

Let us know if you succeed.

Cheers, Julian

junglized commented 2 years ago

Hi @julianxhokaxhiu

What dependecies are needed (vcredist, dotnet, etc.) to run 7th Heaven at all? I tried launching 7th Heaven in many different ways, it always failed. I wish it was so easy as installing Moguri Mod for FF IX in Steam Proton (and running it with Lutris).

Best regards!

julianxhokaxhiu commented 2 years ago

Hi @junglized,

Thanks for the reply. I'm sorry but I am no more an active contributor on this project. Therefore I hope someone else will reply to you and be able to help.

BR.

junglized commented 2 years ago

I wish 7th Heaven was tested more thoroughly with Wine (or Steam Proton) on Linux to make it usable for those, who choose this solution over proprietary systems, such as Windows.

Best regsrds!

sjenkins7 commented 2 years ago

I stumbled across this, as I was interested in getting modded FF7 running under Linux, as it's my daily driver.

Unfortunately, currently there is no way to do so, due to the disc check on launch, due to missing implementation in Mono: https://github.com/mono/mono/blob/bdd772531d379b4e78593587d15113c37edd4a64/mcs/class/corlib/System.IO/DriveInfo.cs#L109

In order to stand a chance in getting it working, you would need to:

  1. Get this VolumeLabel implemented in Mono for Windows
  2. Push for this to be released in both Mono & wine-mono

For the record, I was able to get as far as this point using the following ( Ubuntu with the Steam FF7 installed ):

#!/bin/bash

export WINEPREFIX=/home/${USER}/.local/share/wineprefixes/ff7-7th-heaven
FF7DIR="/home/${USER}/.steam/debian-installation/steamapps/common/FINAL FANTASY VII/" # Assuming a default Steam install here - feel free to change as needed
FHDIR="${WINEPREFIX}/drive_c/Program Files/7th Heaven"

# Add PPA for cdemu
sudo add-apt-repository ppa:cdemu/ppa
sudo apt-get update
sudo apt install cdemu-client -y # Swap for gcdemu if you would rather also have a GUI

# Setup prefix
wine64 wineboot
winetricks dxvk # unsure if needed yet - usually a safe bet for the game itself
winetricks corefonts
winetricks winxp # work around file menus crashing using the Vista+ version

# Install wine-mono - .NET 4.8 in wine is horribly broken
wget https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.1.1/wine-mono-7.1.1-x86.msi
wine64 msiexec /i wine-mono-7.1.1-x86.msi
rm wine-mono-7.1.1-x86.msi

# Run installer
wget https://files.tsunamods.com/7ThHeavenSetup.exe
wine64 7ThHeavenSetup.exe # The installer will crash at the end, due to being unable to create a shortcut - the core install still works

# make a few dirs that don't exist but show up in the guide
mkdir -p "${FF7DIR}/mods/Textures"
mkdir -p "${FF7DIR}/mods/7th Heaven"

# Load the Disc into cdemu
cdemu load 0 "${FHDIR}/Resources/FF7DISC1.ISO"
# Mount the disc itself, so WINE can auto-detect it
pause

# Run it
wine64 "${WINEPREFIX}/drive_c/Program Files/7th Heaven/7th Heaven.exe"

This would get you as far as launching 7th Heaven and doing basic configuration, but without being able to pass the CD Check, there is very little anyone can do.

For the Tsunamods Team: If we were able to get this resolved elsewhere first, would you be open to offering this as an option? I'd be more than willing to spend the time to provide support, to make it happen.

barkermn01 commented 2 years ago
# Load the Disc into cdemu
cdemu load 0 "${FHDIR}/Resources/FF7DISC1.ISO"
# Mount the disc itself, so WINE can auto-detect it
pause

Okies, so for Linux, I will add a setting that is "DoNotMount" AKA 7th heaven won't attempt to automount the disk. that should get around that problem for you, we should have that as an option anyway so if someone wants they can call a Partition or something else that name and so don't have to have it mounted

junglized commented 2 years ago

After unsuccessful attempts of running 7th Heaven with Wine or Proton I ditched it and moved to The Reunion installed with Protontricks. Works out of the box. No so many mods to choose from but the most relevant for me - SYW and Ninostyle characters - are present and function without a problem.

barkermn01 commented 2 years ago

unsuccessful attempts of running 7th Heaven with Wine or Proton I ditched it and moved to The Reunion

Would you be willing to test the new 7th heaven when it's released it should detect reunion and handle it and launch the version without reunion, and then when the game exits undo the changes so that reunion works again?

junglized commented 2 years ago

unsuccessful attempts of running 7th Heaven with Wine or Proton I ditched it and moved to The Reunion

Would you be willing to test the new 7th heaven when it's released it should detect reunion and handle it and launch the version without reunion, and then when the game exits undo the changes so that reunion works again?

So, in other words, would you like me to try installing it over The Reunion with Steam + Proton version of FF VII (Linux Mint 20.3 + Steam/Proton + FF VII + The Reunion is my current environment/game setup)?

sjenkins7 commented 2 years ago

After getting stuck in this evening & trying to get further - looks like there is more to be done under Wine.

I was able to patch my own install locally to return the correct disc label, which got the game launched as a vanilla install.

Once you try to add mods, things fall apart around EasyHook. First it needs aSystem.Runtime.Remoting.Channels.Ipc.IpcServerChannel constructor that is missing from the Mono distribution.

If you get past that - FF7 simply crashes. Unsure at this point if its the hooks in 7th Heaven, EasyHook itself or missing stuff in wine / mono.

23:24:30|INFO|SeventhHeaven.Classes.GameLauncher|Copying EasyHook.dll to FF7 path (if not found or older version detected) ...
23:24:30|INFO|SeventhHeaven.Classes.GameLauncher|       skipped copying EasyHook.dll ...
23:24:30|INFO|SeventhHeaven.Classes.GameLauncher|       skipped copying EasyHook32.dll ...
23:24:30|INFO|SeventhHeaven.Classes.GameLauncher|Checking if Reunion mod is installed ...
23:24:30|INFO|SeventhHeaven.Classes.GameLauncher|       found: False
23:24:30|INFO|SeventhHeaven.Classes.GameLauncher|Launching additional programs to run (if any) ...
23:24:31|INFO|SeventhHeaven.Classes.GameLauncher|Writing temporary runtime profile file to C:\users\simon\Temp\tmp7e19183.tmp ...
23:24:31|INFO|SeventhHeaven.Classes.GameLauncher|Attempting to inject with EasyHook ...
23:25:24|WARN|SeventhHeaven.Classes.GameLauncher|       received errors: STATUS_INTERNAL_ERROR: Unknown error in injected assembler code. (Code: 5);  ...

image

sjenkins7 commented 2 years ago

Okies, so for Linux, I will add a setting that is "DoNotMount" AKA 7th heaven won't attempt to automount the disk. that should get around that problem for you, we should have that as an option anyway so if someone wants they can call a Partition or something else that name and so don't have to have it mounted

While appreciated, not sure if it's necessary beyond just failing fast.

WinCDEmu doesn't seem to work at all in Wine, but have not really had time to look into why

The main problem is that the stub simply returns the path. In Wine, this means it would be the drive letter itself - nothing could ever match without fixing / hacking Mono.

sjenkins7 commented 2 years ago

After a bit more experimentation with different launchers, was able to get the base game to load under 7th Heaven without mods.

Using Bottles:

At this point, it's using the real .NET 4.8 & a proper Steam install location, so everything runs as a normal Windows install.

So far I've only been able to get the game to reliably launch with DX11, so make sure this is selected in the launcher.

I don't get any SFX, only the BGM - entirely possible I'm missing some config here, but haven't had time to dig into that in more detail

Sadly running with mods doesn't appear to be possible still - as soon as EasyHook gets involved, the game crashes (albeit with a different stack trace this time): image

it appears that SHA isn't implemented in WINE 7.2? ( the version used at the time of this comment)

Not being familiar with the hooking system being used - is it possible to avoid this?

Overall, the game was far more stable - Was able to play through as far as escaping the first reactor, without any real issues, etc.

EDIT - typos

barkermn01 commented 2 years ago

it appears that SHA isn't implemented in WINE 7.2? ( the version used at the time of this comment)

strange because it's listed in the source as being there, https://source.winehq.org/WineAPI/A_SHAFinal.html

sjenkins7 commented 2 years ago

strange because it's listed in the source as being there, https://source.winehq.org/WineAPI/A_SHAFinal.html

Yeah it's an odd one - May just be seeing a bug in the way it is being handled / called. I'll try to take a look later on in the week, to see if I can narrow it down

sjenkins7 commented 2 years ago

Finally got a break through - the fork of WINE being used was at fault. Switched to a different runner & got it working immediately. Tested a few minutes in with Cosmo Memory & Cosmo FMV without issue.

The config I used:

Arch: win64
Creation_Date: '2022-03-05 12:15:48.176125'
Custom_Path: false
DLL_Overrides: {}
DXVK: dxvk-1.9.4
Environment: Gaming
Environment_Variables: {}
Installed_Dependencies:
- dotnet40
- dotnet48
- d3dx9
- msls31
- riched20
- allfonts
- d3dcompiler_43
- d3dcompiler_47
- vcredist2019
Latest_Executables: []
NVAPI: dxvk-nvapi-v0.5.2
Name: 7th Heaven
Parameters:
    aco_compiler: false
    custom_dpi: 96
    discrete_gpu: true
    dxvk: true
    dxvk_hud: false
    dxvk_nvapi: false
    fixme_logs: false
    fsr: false
    fsr_level: 5
    fullscreen_capture: false
    gamemode: false
    gamescope: false
    gamescope_borderless: false
    gamescope_fps: 0
    gamescope_fps_no_focus: 0
    gamescope_fullscreen: true
    gamescope_game_height: 0
    gamescope_game_width: 0
    gamescope_scaling: false
    gamescope_window_height: 0
    gamescope_window_width: 0
    pulseaudio_latency: true
    sync: esync
    take_focus: false
    use_runtime: true
    virtual_desktop: false
    virtual_desktop_res: 1280x720
    vkd3d: false
Path: 7th-Heaven
Runner: vaniglia-6.23
State: 9
Uninstallers:
    allfonts: false
    d3dcompiler_43: false
    d3dcompiler_47: false
    d3dx9: false
    dotnet40: Microsoft .NET Framework 4 Extended
    dotnet48: true
    msls31: false
    riched20: false
    vcredist2019: true
Update_Date: '2022-03-05 13:18:20.710904'
VKD3D: vkd3d-proton-2.5
Versioning: true
Windows: win10
WorkingDir: ''

Save this config & import it in Bottles. Should then just be a case of:

and enjoy: image

EDIT: Missing CD mount step

julianxhokaxhiu commented 2 years ago

Great progress over there!

What do you think about creating a Bottle Installer recipe to make it easy for other users? https://maintainers.usebottles.com/installers/Introduction

See also https://github.com/bottlesdevs/programs

Would be really nice to have 7th Heaven in the list. Thank you in advance!

sjenkins7 commented 2 years ago

What do you think about creating a Bottle Installer recipe to make it easy for other users? https://maintainers.usebottles.com/installers/Introduction

Can certainly look into doing one. On the face of it, they don't appear to need to be silent installs, which should make it easier. That said - still need to get Steam to install FF7 in the first place.

sjenkins7 commented 2 years ago

On the face of it - creating the installer might not be practical yet.

Given the Steam version appears to be the golden standard for installs & there doesn't appear to be any way to chain installers, it looks like we would have to maintain our own Installer for Steam as part of this.

With Bottles releasing experimental support for Steam Proton prefixes - would be interesting to reach out to the devs, to see if there are plans to support this. In our case, all we really need is FF7 + the last bits needed to get 7th heaven.

EDIT: typo

julianxhokaxhiu commented 2 years ago

If you're up for it, feel free to approach them and follow up this topic. The easier we manage to get this up and running on Linux, the better. Keep us updated and thank you in advance for the time spent on this!

SeongGino commented 2 years ago

Apologies, but I have to interject here a little; I seem to be running into a similar (albeit not identical) issue @sjenkins7 was having with EasyHook.

In my case (Arch, Kernel 5.17, KDE 5.42), it's a standalone prefix created specifically for 7H with Lutris (only needs dotnet48 vcrun2019) so I've gotten to the point of the mod manager running and detecting/configuring mods, and running vanilla FF7 works as well (Game Driver/FFNx Stable set to use Vulkan, and the prefix has a virtual D:\ set to a random directory and given the label FF7DISC1). 2022_04-04 01-37-54

Unfortunately, running with mods fails at EasyHook with 'Code 5'. 2022_04-04 01-37-13 But there is no visible Wine crash/debugger window appearing, and running the instance from a terminal gives the most generic and least helpful line prints I've ever seen. 2022_04-04 02-24-15

This has been tried with System (mainline) Wine 7.5, lutris' 7.2 fshack, 6.21 fshack, and GE 7-7; all of which exhibit the same symptoms. I've tried using the same Bottles-sourced fork used in the referenced comments above, but the prefix won't even launch with it using Lutris - and I've too many other Windows/GOG games setup with it to even consider switching frontends.


On a related note, the Bottles idea is nice, but it does leave out what's probably a small but existing minority that uses the original 1998 4-CD release. fwiw, it's clearly much less of a hassle to get FF7 running without WineSteam on top of it.

sjenkins7 commented 2 years ago

Unfortunately, running with mods fails at EasyHook with 'Code 5'.

This was in line with what I saw when putting the notes together. The only way i managed to get it working, was with the bottle's distributed vaniglia variant. Anything else tripped with this same error & a crash of the FF7 process. It's odd that you aren't getting the debugger show up though

If someone was able to narrow this down, we could figure out where to ask for support, be it a patch in WINE or a fix to a bad hook. At very least we have access to the source of both 7th Heaven & EasyHook, which can help. I can go rummaging around the 7th heaven source and try stuff out, but I'm not sure how much success there would be, as I'm not a WINE or a .NET developer

On a related note, the Bottles idea is nice, but it does leave out what's probably a small but existing minority that uses the original 1998 4-CD release

While I was obviously putting these notes together under the guise of the Steam version, I believe the CD version could be substituted - you wouldn't need to mount the ISO needed for the Steam version, because you already have the original disc. Unfortunately I don't have one to hand to prove either way.

julianxhokaxhiu commented 2 years ago

You could try enabling the Code 5 Fix flag in Settings -> Game Launcher and see how it goes.

The code 5 fix is required even on Windows depending on various circumstances. Unfortunately it's a legacy thing we have from EasyHook and we can't change that, not in the near future.

SeongGino commented 2 years ago

You could try enabling the Code 5 Fix flag in Settings -> Game Launcher and see how it goes.

The code 5 fix is required even on Windows depending on various circumstances. Unfortunately it's a legacy thing we have from EasyHook and we can't change that, not in the near future.

This I have tried, but it initially caused 7H to crash outright (Object Not Set to a Reference-type deal). Unfortunately, looking at 7H's source, all the Code 5 fix does is apply a regkey for HiDPI compatibility(?) - a setting that does not apply to Wine at all (it just acts like it's 100% scale). Adding the same reg key path in the prefix gets past the crash, but (ironically) causes the same Code 5 error regardless.

And @sjenkins7, my rambling was not intended to frame you in an undesirable spotlight and I hope it didn't come off as such. It is just strange that Bottles' fork specifically is content with EasyHook, but not any other popular upstream/downstream Wine variant - and that it has to seemingly throw a tantrum when used elsewhere outside of its own program driiives me up a small wall.

1MIN EDIT: A small clarification, it seems like only upstream Wine and the TkGlitch Staging fork from Arch User Repository exposes a small black window labeled Wine Debugger for each (what I can only guess is) EasyHook attempt. Lutris' own fork and Wine-GE seem to hide this. Still, no traditional Wine stack trace output to be gathered in my environment.

sjenkins7 commented 2 years ago

And @sjenkins7, my rambling was not intended to frame you in an undesirable spotlight and I hope it didn't come off as such. It is just strange that Bottles' fork specifically is content with EasyHook, but not any other popular upstream/downstream Wine variant - and that it has to seemingly throw a tantrum when used elsewhere outside of its own program driiives me up a small wall.

Don't worry - wasn't taken as that :)

For what it's worth, I used to use Lutris a lot before i rebuilt my setup on Endeavour recently ( after putting the above notes together ). Always intended to swing back around for this - once I have something 100% working all of the time, I can isolate the differences in the prefixes. This might help get things working across the board.

Also worth noting the installer logic for Bottles made it into a release. I will take a look at trying to automate as much of the install as I can.

EDIT typo

barkermn01 commented 2 years ago

So from a technical operations standpoint normally if you are getting read errors at 0x0 addresses, the application using the memory addresses does not have application offset applied.

Normally Applications in an OS are provided with an offset at the start and all memory addresses are Offset+internal position, Easyhook needs to know the memory offset location for the ff7 exe, and normally windows hold this against the application process (in the process manager) so 7th heaven provides the process ID to EasyHook, EasyHook can then talk to the Windows Process Manager to get it's memory offset if you're getting 0x0 addresses across the board it means this is failing and getting a NULL response as NULL = 0x0,

On windows to make any calls to get machine-level information such as memory offset of another application it requires Administrator UAC, I'm not sure how that would translate in Wine.

Edit: Oh I just thought this could be because of AnyCPU configuration, Linux does not have AnyCPU it has, x86 (as i386), x64 as amd64, it could be it does not know how to translate the AnyCPU instructions which are x86 using x64 CPU calls where it can, I know with Debian i have to use multi-arch for 32-bit apps on an x64 Distro,

You could try using an Exclusively x86 build (give me a few min and I will compile it for you) to try

Release x86 exclusive.zip - this is a VS build so it does not have version information inside it and will report as version 0.0.0.0, ignore it and update requests

SeongGino commented 2 years ago

@sjenkins7 Well, good to know we both share a common distro together, so we can rule out another possible variable.

@barkermn01 I tried your VS build - even going as far as making a new 32-bit prefix specifically for it with the same changes I noted before - but unfortunately it made no difference. Same symptoms and output as before.

sjenkins7 commented 2 years ago

An update - I have the start of an installer for bottles available at: https://github.com/sjenkins7/bottles-programs

I'd encourage everyone interested to test this out and let me know if you have any issues. Please use a custom environment, rather than the Gaming environment, to select the correct runtime

To use the custom installers:

cd ~/.var/app/com.usebottles.bottles/data
git clone https://github.com/sjenkins7/bottles-programs.git
cd bottles-programs
LOCAL_INSTALLERS=$(pwd) flatpak run com.usebottles.bottles

A few things to be aware of:

If you are using Steam with Steam Guard - you might find you need to tweak settings to get it working ( https://github.com/bottlesdevs/programs/issues/57 )

FF7 is not automatically installed - Either the 1998 CDs or via Steam

Recommended settings to tweak once installed ( should we look to make these the default if running in wine? ):

Full details can be found at: https://github.com/sjenkins7/bottles-programs/blob/feature/7th-heaven/Reviews/7th-heaven.md

EDIT: added instructions to run the installer, as it isn't available by default

SeongGino commented 2 years ago

set Graphics API to DirectX 12( Game appears to always crash without this )

@sjenkins7 Shouldn't it be able to run fine with the Vulkan API? It worked for me when running FF7 on its own with Nx.

sjenkins7 commented 2 years ago

@sjenkins7 Shouldn't it be able to run fine with the Vulkan API? It worked for me when running FF7 on its own with Nx.

@SeongGino I found that it was frequently causing lockups, usually before you get into the 1st reactor. This often locks up X11 as well for a few seconds, though it recovers ( the game itself doesn't and has to be killed ). At first i thought it was a texture mod causing it, but I was still hitting this without any mods.

So far DX12 hasn't caused any issues for me - tested as far as the second reactor.

SeongGino commented 2 years ago

@sjenkins7 Shouldn't it be able to run fine with the Vulkan API? It worked for me when running FF7 on its own with Nx.

@SeongGino I found that it was frequently causing lockups, usually before you get into the 1st reactor. This often locks up X11 as well for a few seconds, though it recovers ( the game itself doesn't and has to be killed ). At first i thought it was a texture mod causing it, but I was still hitting this without any mods.

So far DX12 hasn't caused any issues for me - tested as far as the second reactor.

That sounds more like a driver crash. Especially since DX12 over VKD3D has an extra overhead that limits GPU utilization...

sjenkins7 commented 2 years ago

That sounds more like a driver crash. Especially since DX12 over VKD3D has an extra overhead that limits GPU utilization...

Most likely. In my case, i'm favouring the stability - Even when rocking a fair amount of mods in my current test run, its sticking solidly to the 15/30/60 FPS depending on the area. No sudden drops etc, even with an older card ( i run this on a GTX 1070 ).

image

Worth noting that I didn't enable VKD3D in the installer either - so far it's proven unnecessary to do so

sjenkins7 commented 2 years ago

Small update for everyone:

I've pushed a new version of the installer - hopefully people can try it out and let me know how it works.

Mounting the CD isn't needed any more - the installer scripts the setup of an empty FF7 CD to satisfy the game. Messing with the mount settings is also not needed.

Install guide for this version:

I opened https://github.com/tsunamods-codes/7th-Heaven/pull/85 to streamline the install. The installer will automatically launch 7th heaven without this, which isn't desired ( because we try to install FF7 directly before this, it will launch with no installed FF7 & you have to fill in the directory config yourself otherwise ). Once the 2 remaining Bottles bugs get resolved, I can streamline this into an (almost) 1-click install ( I can't auto login & grab FF7 from Steam sadly! )

The game still hard crashes on first launch, because you still need to specify DX12. Not sure what we can do to specify this in advance? Can't fill this in because FFNx.toml doesn't exist on first launch?

EDIT: typo on FFNx config

julianxhokaxhiu commented 2 years ago

Great progress so far, thank you for pushing hard on this topic. Ideally once this process has been streamlined we could theoretically find a way to add 7th on the SteamDeck library. Looking forward into this.

The game still hard crashes on first launch, because you still need to specify DX12. Not sure what we can do to specify this in advance?

You could automate the installation of the latest FFNx stable using the manual installation instructions, change the backend renderer parameter to what you desire and 7th will automatically handle the rest on launch.

I also merged the PR, thank you again.

sjenkins7 commented 2 years ago

You could automate the installation of the latest FFNx stable using the manual installation instructions, change the backend renderer parameter to what you desire and 7th will automatically handle the rest on launch.

Not sure how practical this would be - I would be replicating a lot of 7th Heavens logic into a system that doesn't have this kind of capability yet:

Other things I have to consider ( though admittedly, I could do this as a separate installer ):

While I can update config as part of the install steps, either:

lumnie commented 2 years ago

Hello. Been spending hours attempting to get this process down to work with the Steam Deck and been having trouble trying to get this customer installer working in bottles. I've attempted the cd command listed above to copy below but it seems I'm still unable to get the customer installer to load up in the installer's section. Prior to this, I tried the earlier suggestion of getting 7th Heaven to work by using the script to make a custom bottle but was running into issues with the disc mount feature causing me to start over.

Can someone guide me as to how this CD command works to import 7th Heaven to bottles as an installer? Originally, I've just been using the + to add the installer that way.

sjenkins7 commented 2 years ago

Can someone guide me as to how this CD command works to import 7th Heaven to bottles as an installer? Originally, I've just been using the + to add the installer that way.

Because I haven't submitted the installer yet to the bottles maintainers, those wanting to test it in advance have to jump through additional hoops. The commands I mentioned before tell bottles to use my repository for installers, instead of the official one.

Assuming the Steam Deck doesn't change the install locations or have tools missing, the instructions provided should be enough. Unfortunately I don't have one to check, so I'd have to rely on screenshots etc..

Once the installer has been put to review & then accepted by the bottles maintainers, it will show up as any other installer without any of these extra steps. This is purely if you wish to test the installer beforehand

lumnie commented 2 years ago

Seem to be running into the issue with the 7th heaven mounting the disco or even mounting the virtual disco when i swapped options as per mentioned earlier in the thread. The Bottle recipe calls for install steam then FF7 then 7th heaven. Given that all usually takes place within a fake C drive, does that mean that I would need to have FF7 be placed in the C drive created in bottles?

Given steam deck has it's built in steam application, it's made with it's own fake drive which can be accessed with bottles. Do you think that may be the reason the application is having trouble mounting a fake ISO? Or is there a separate setting that's suppose to help with that in the preferences?

ksnip_20220527-193154

julianxhokaxhiu commented 2 years ago

Given steam deck has it's built in steam application, it's made with it's own fake drive which can be accessed with bottles. Do you think that may be the reason the application is having trouble mounting a fake ISO? Or is there a separate setting that's suppose to help with that in the preferences?

If you just name one of your drives to FF7DISC1 ( or 2 or 3 at the end ) and you use Play with Minimal Validation you'll be able to run the game skipping the disk mount logic.

PlUmPaSsChIcKeN commented 2 years ago

Seem to be running into the issue with the 7th heaven mounting the disco or even mounting the virtual disco when i swapped options as per mentioned earlier in the thread. The Bottle recipe calls for install steam then FF7 then 7th heaven. Given that all usually takes place within a fake C drive, does that mean that I would need to have FF7 be placed in the C drive created in bottles?

Given steam deck has it's built in steam application, it's made with it's own fake drive which can be accessed with bottles. Do you think that may be the reason the application is having trouble mounting a fake ISO? Or is there a separate setting that's suppose to help with that in the preferences?

ksnip_20220527-193154

Hey, also a Steam Deck user that is interested in using 7th Heaven. Did you get yours to work with mods? If so, how did you get it to work? Any suggestions as I'm interested in trying this myself

lumnie commented 2 years ago

I did managed to get this to work mods included. It wasn't the easiest process for me as I'm pretty inept when it comes to linux but basically it was a process of Creating a Bottle with the recipe provided above > Renaming one of the drives in the bottles program to FF7DISC1 and then running the game. Keyboard and mouse highly recommended for setting up directories for 7th heaven. I had ended up moving my installed FF7 out of it's default location to one much more manageable by 7th Heaven's recognition. Same with mods.

It plays okay. There's some settings I've yet to tweak as my game tends to run slow given my mod load. I think for the most part, it's a matter of having to toggle DXVK off and on when messing with 7th Heaven so that it functions properly and the fact I'm not able to add it to steam to work that way from game mode.

PlUmPaSsChIcKeN commented 2 years ago

That's awesome to hear. Did you install bottles via the terminal command posted above or was there any other steps involved?

That's really unfortunate about not being to launch in game mode. Wonder if there is a solution for this

lumnie commented 2 years ago

No terminal. I used the long one posted above and created a config file and then just imported the settings in Bottles when making a Custom Bottle based off that long string you can copy from sjenkins above. I tried the terminal but was getting confused as it wasn't properly launching the program database that bottle populates for me.

It's been a bit since I tried messing with it again so I might try again with figuring out how to get this to work in gaming mode.

julianxhokaxhiu commented 2 years ago

That's really unfortunate about not being to launch in game mode. Wonder if there is a solution for this

What do you mean exactly?

lumnie commented 2 years ago

That's really unfortunate about not being to launch in game mode. Wonder if there is a solution for this

What do you mean exactly?

Steam Deck operates in gaming mode for their basic game launching ( Basically Steam Big Picture Mode ) but has a desktop mode for the traditional desktop experience where you can do all the fun backend stuff. Usually to get something to launch in gaming mode, you'd just add the program as a non-steam game in desktop mode and then you'd be able to launch the program from your library when you swap back to gaming mode.

Been trying to add bottles as a program shortcut and launch it that way to get to 7th Heaven and by proxy my modded FF7 but it doesn't seem to be a viable option that way. Haven't found a fix so just shelved it for now on my end.

julianxhokaxhiu commented 2 years ago

Oh ok, unfortunately I do not own one so I can't really test this scenario I am afraid. But I hope some help from the community might come and/or some development tips that could actually identify what the core issue is. Any help on this regard is appreciated. Needless to say, PRs are welcome too.

PlUmPaSsChIcKeN commented 2 years ago

That's really unfortunate about not being to launch in game mode. Wonder if there is a solution for this

What do you mean exactly?

Steam Deck operates in gaming mode for their basic game launching ( Basically Steam Big Picture Mode ) but has a desktop mode for the traditional desktop experience where you can do all the fun backend stuff. Usually to get something to launch in gaming mode, you'd just add the program as a non-steam game in desktop mode and then you'd be able to launch the program from your library when you swap back to gaming mode.

Been trying to add bottles as a program shortcut and launch it that way to get to 7th Heaven and by proxy my modded FF7 but it doesn't seem to be a viable option that way. Haven't found a fix so just shelved it for now on my end.

Did you install steam inside a custom bottle or were you able to use the pre-installed steam and then install FFVII from there?

Also since you didn't install bottles through the command did you just install the flatpak version on discover?

lumnie commented 2 years ago

Correct. I just used the pre-installed steam to download FFVII. The guide only seemed like installing steam first was necessary so that you could get access to FF7 and with the deck, I felt like I could cut that part out. Also yes, I had the flatpack version of bottles installed.

sjenkins7 commented 2 years ago

Apologies for the radio silence for a while - I've been super busy so unable to really catch up on things here.

It's increasingly looking like i'm back to step 1 again with this - Having pulled down the latest bottles and 7th heaven installer, its fairly broken again.

I'll start looking at getting things patched up and working on the installer branch I have, but it may take some time.

As an aside - it may pay for us to look into alternatives, such as providing our own setup via Flatpak. the FF14 community have done something very similar there, as they can now better control the libraries / runtimes. That said - not sure how that would work for us here, given we also need to source FF7 as well.

julianxhokaxhiu commented 2 years ago

Just coming by to ask what is the current situation around this: I've seen multiple users reporting on Discord playing FF7 w/7th on a Steam Deck. Is there still anything required on our own end or can we close this issue? LMK, thanks

sjenkins7 commented 2 years ago

Work has been pretty busy so i've been unable to finish updating things. I've not been up-to-date with Discord, but that's some good news. I'll see what i can do about finishing updating stuff over this weekend.

I'd suggest not closing it until the launcher is public - it would also make the installation much much simpler for those involved