2026年2月6日 星期五

20260130 購入 steam 版 ff7 original

原本有 4cd 的實體版本, 所以一直沒買 steam 版。





後來看到 list 1 的消息, 就購入 steam 版本 ff7, 賭新版本的好處。主要是持有舊版 ff7, 會送新版 ff7 (不是 ff7 remake/rebirth), 是送新版 ff7 original。

list 1. An Update Regarding the Re-Release of FINAL FANTASY VII - 2013 Edition on Steam
To our FINAL FANTASY VII community,

We will be releasing a new version of FINAL FANTASY VII on Steam.

Following the launch of this new version, the current version will be renamed FINAL FANTASY VII – 2013 Edition.

Please review the below information to understand how this update will affect existing owners:

Availability of Versions
  • When the new version launches, FINAL FANTASY VII – 2013 Edition will no longer be available for purchase on the Steam Store.
  • Existing owners will continue to have access to FINAL FANTASY VII – 2013 Edition in their library.
  • The new version will be listed on the Steam Store as FINAL FANTASY VII.
Access for Existing Owners
  • All players who already own the 2013 Edition are eligible to access the new version at no additional cost.
  • Both versions will remain accessible in the owner’s Steam Library once the new version is released.
Save Data Information
  • Save data will not be compatible between the two versions.
  • 2013 Edition saves will only work with the 2013 Edition.
  • New version saves will only work with the new version.
Thank you for your continued support of FINAL FANTASY VII.
fig 1. 20260130 購入 steam 版 ff7 original, 140nt

不過後來發現每次玩都要登入 Square Enix account (購買頁面有注明: 需要第三方帳戶: Requires a Square Enix account), 為此還要註冊一個 Square Enix account, 而 ff8 remaster 卻不需要登錄就能玩。

用 steam deck 執行, 每次玩都要打一次帳號密碼, 蠻麻煩的, steam deck 又沒有實體鍵盤, 不好打字。

用 7th Heaven Mod Manager 解決這問題, 每次都要登錄真的很煩。

麻煩的來了, 在 windows 上很容易安裝 7th Heaven Mod Manager, 在 steam deck/linux 怎麼辦?

事實上安裝 7th Heaven Mod Manager 也真的比我想的還要複雜。

https://github.com/dotaxis/7thDeck 提供了一個 script, 可以輕鬆安裝 7th Heaven Mod Manager, 可惜不知道什麼緣故, 我沒能成功透過這個 script 安裝成功。不過透過安裝一個非 steam 遊戲倒是把 7th Heaven Mod Manager 3.5 成功安裝起來。以下是 debug 安裝 7th Heaven Mod Manager 過程。

以下影片介紹如何用 https://github.com/dotaxis/7thDeck 安裝 7th Heaven Mod Manager, 也成功執行 ff7。



影片很有趣還拿 ff7 重製版當開頭畫面, 都玩 ff7 original, 怎麼不拿 ff7 original 的片頭畫面。

透過安裝一個非 steam 遊戲安裝起來的的 app id 是 4176347364, STEAM_COMPAT_DATA_PATH: /home/deck/.steam/steam/steamapps/compatdata/4176347364。

ff7 是 39140, STEAM_COMPAT_DATA_PATH 有 2 個地方, 我不確定是不是因為把 ff7 安裝在 sd card 的關係。
  • /home/deck/.local/share/Steam/steamapps/compatdata/39140
  • /run/media/deck/SPCC/steamapps/compatdata/39140
而安裝一套遊戲除了建立 compatdata 還有其他目錄, 例如遊戲本身安裝在哪個目錄: "/run/media/deck/SPCC/steamapps/common/FINAL FANTASY VII"

compatdata 是一個 windows 環境, 對應到 windows 那些目錄, 大概像 list 2:
list 2
 1 .
 2 ├── dosdevices
 3 │   ├── c: -> ../drive_c
 4 │   ├── com1 -> /dev/ttyS0
 5 │   ├── com10 -> /dev/ttyS9
 6 │   ├── com11 -> /dev/ttyS10
 7 │   ├── com12 -> /dev/ttyS11
 8 │   ├── com13 -> /dev/ttyS12
 9 │   ├── com14 -> /dev/ttyS13
10 │   ├── com15 -> /dev/ttyS14
11 │   ├── com16 -> /dev/ttyS15
12 │   ├── com17 -> /dev/ttyS16
13 │   ├── com18 -> /dev/ttyS17
14 │   ├── com19 -> /dev/ttyS18
15 │   ├── com2 -> /dev/ttyS1
16 │   ├── com20 -> /dev/ttyS19
17 │   ├── com21 -> /dev/ttyS20
18 │   ├── com22 -> /dev/ttyS21
19 │   ├── com23 -> /dev/ttyS22
20 │   ├── com24 -> /dev/ttyS23
21 │   ├── com25 -> /dev/ttyS24
22 │   ├── com26 -> /dev/ttyS25
23 │   ├── com27 -> /dev/ttyS26
24 │   ├── com28 -> /dev/ttyS27
25 │   ├── com29 -> /dev/ttyS28
26 │   ├── com3 -> /dev/ttyS2
27 │   ├── com30 -> /dev/ttyS29
28 │   ├── com31 -> /dev/ttyS30
29 │   ├── com32 -> /dev/ttyS31
30 │   ├── com4 -> /dev/ttyS3
31 │   ├── com5 -> /dev/ttyS4
32 │   ├── com6 -> /dev/ttyS5
33 │   ├── com7 -> /dev/ttyS6
34 │   ├── com8 -> /dev/ttyS7
35 │   ├── com9 -> /dev/ttyS8
36 │   ├── d: -> /media/9
37 │   ├── d:: -> /dev/loop0
38 │   ├── e:: -> /dev/sr0
39 │   └── z: -> /
40 ├── drive_c
41 │   ├── pm2win
42 │   │   ├── Data
43 │   │   └── uninst.exe
44 │   ├── ProgramData
45 │   │   └── Microsoft
46 │   ├── Program Files
47 │   │   ├── Common Files
48 │   │   ├── Internet Explorer
49 │   │   ├── Windows Media Player
50 │   │   └── Windows NT
51 │   ├── Program Files (x86)
52 │   │   ├── Common Files
53 │   │   ├── directx
54 │   │   ├── Hasbro Interactive
55 │   │   ├── InstallShield Installation Information
56 │   │   ├── Internet Explorer
57 │   │   ├── Kobo
58 │   │   ├── Windows Media Player
59 │   │   └── Windows NT
60 │   ├── users
61 │   │   ├── descent
62 │   │   └── Public
63 │   └── windows
64 │       ├── command
65 │       ├── Directx.log
66 │       ├── DPINST.LOG
67 │       ├── explorer.exe
68 │       ├── Fonts
69 │       ├── help
70 │       ├── hh.exe
71 │       ├── inf
72 │       ├── Installer
73 │       ├── logs
74 │       ├── notepad.exe
75 │       ├── pm2.ini
76 │       ├── regedit.exe
77 │       ├── rundll.exe
78 │       ├── system
79 │       ├── system32
80 │       ├── system.ini
81 │       ├── syswow64
82 │       ├── temp
83 │       ├── twain_32
84 │       ├── twain_32.dll
85 │       ├── twain_64
86 │       ├── twain.dll
87 │       ├── winhelp.exe
88 │       ├── winhlp32.exe
89 │       ├── win.ini
90 │       └── winsxs
91 ├── system.reg
92 ├── userdef.reg
93 ├── user.reg
94 └── winetricks.log
95 
96 40 directories, 53 files

我本來以為遊戲本身會和 wine 一樣, 安裝在 drive_c 裡頭, 不過 proton 看來不是這麼做。需要用 z: 來存取到 linux 根目錄。

這個 z: 不是 windows 磁碟 z 槽, 就是一個目錄, 名稱為 z:。不熟悉 linux 的使用者可以會覺得很奇怪, 不過單純就是這樣。

安裝 7th Heaven Mod Manager 應該要把程式裝到 39140 環境才是, 但透過非 steam 遊戲會有一個新的 app id。

查看 https://github.com/dotaxis/7thDeck install.sh, 改寫為 r7th.sh, 把 7th Heaven Mod Manager 安裝到 39140 環境, 主要是需要 STEAM_COMPAT_DATA_PATH, STEAM_COMPAT_CLIENT_INSTALL_PATH 這2個環境變數, 並透過 proton 9.0 執行 ./7thHeaven-v3.5.1.0_Release.exe, ./7thHeaven-v3.5.1.0_Release.exe 會下載 c++ runtime, .NET Desktop Runtime, 所以省下手動安裝這些 dll 的功夫。當然, 現在我知道怎麼安裝 .NET Desktop Runtime 到特定 app id 了, 甚至只要其中一個 app id 有裝過, 可以透過 symbolic link 就好, 其他 app id 不用重新安裝。

注意: .NET Desktop Runtime 和 .NET Runtime 是 2 套 dll, 不是相同的東西。

r7th.sh
1 #!/bin/sh
2 STEAM_COMPAT_DATA_PATH=/run/media/deck/SPCC/steamapps/compatdata/39140 STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/deck/.local/share/Steam /home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/run -- /home/deck/.local/share/Steam/steamapps/common/Proton\ 9.0\ \(Beta\)/proton waitforexitandrun ./7thHeaven-v3.5.1.0_Release.exe

裝好之後要怎麼執行 7th Heaven Mod Manager 也是個問題, https://github.com/dotaxis/7thDeck 在安裝後會提供一個 script "7th Heaven.sh" 來執行, 稍微修改一下, 就可以成功執行 7th Heaven Mod Manager。

再來便是把 ./7thHeaven-v3.5.1.0_Release.exe 提供的 ff7.exe 換到 steam ff7, steam ff7 執行檔是 ff7_en.exe, 我的環境在 /run/media/deck/SPCC/steamapps/common/FINAL FANTASY VII, 再來便是透過 7th Heaven Mod Manager 執行這個 ff7.exe。

成功從 7th Heaven Mod Manager 執行 ff7.exe 之後, 遇到 mount 遊戲光碟失敗問題, list 3 的訊息, 這個是最難的一關, 透過 ai 查詢, 都沒屁用, 還說在 linux 無法透過 powershell mount 光碟。

mount 方法有 3 種, 在 7th Heaven Mod Manager 可以設定, 但都沒用。
https://forums.qhimm.com/index.php?topic=19831.0
1. Mount-DiskImage -ImagePath "C:\7th Heaven\Resources\FF7DISC1.ISO"
2. SeventhHeavenUI/Resources/WinCDEmu/PortableWinCDEmu.exe
第3種應該是程式自己 mount。7th Heaven Mod Manager 是 C# 寫的, 我有去追 7th Heaven Mod Manager source code mount disc 相關部份。

list 3. 無法 mount 遊戲光碟
1 7thWorkshop/applog.txt:75:11:25:59|INFO|_7thHeaven.Code.GameDiscMounter|        attempting to mount iso at Z:\home\deck\7th\Resources\FF7DISC1.ISO

FF7DISC1.ISO 是 7th Heaven Mod Manager 提供的 iso, 主要是騙過 ff7.exe 的檢查光碟機制, FF7DISC1.ISO 裡頭只有一個文字檔案。

最 tricky 的地方來了, 查看 https://github.com/dotaxis/7thDeck install.sh, 有類似 list 5 L1, L2 的修改, 看到後欣喜若狂, 終於被我找到差異點, 補上後, 一樣 mount 不到 FF7DISC1.ISO, 非常洩氣。

後來想到 compatdata 還有另外一個路徑, 就是 list 5 L3, 修改之後, 神奇的事情發生了, 可以 mount FF7DISC1.ISO, 終於可以成功進入 ff7 遊戲畫面, 玩個遊戲好像在 debug, 好累。

list 5.
1 echo "44000000" > /run/media/deck/SPCC/steamapps/compatdata/39140/pfx/drive_c/.windows-serial"
2 echo "FF7DISC1" > /run/media/deck/SPCC/steamapps/compatdata/39140/pfx/drive_c/.windows-label
3 echo "FF7DISC1" > /home/deck/.local/share/Steam/steamapps/compatdata/39140/pfx/drive_c/.windows-label

成功安裝之後, 把中文 mod 也加入測試, 嘗試一陣子, 還是只能對話中文, 選單指令是英文的結果, 就先這樣吧!
fig 11. 在 steam deck 安裝 7th Heaven Mod Manager 並安裝中文化 mod

https://github.com/auntiepickle/ff7seventhheavensteamdeck 這邊是另外一個安裝文件, 這個我沒看, 步驟太複雜。

https://github.com/dotaxis/7thDeck install.sh 惠我良多, 讓我知道要設定什麼環境變數才可以正確執行 proton。

自己安裝的 7th heaven 是裝在 STEAM_COMPAT_DATA_PATH: /home/deck/.steam/steam/steamapps/compatdata/4176347364。
相關的目錄
/home/deck/.local/share/Steam/steamapps/shadercache/4176347364
/home/deck/.local/share/Steam/steamapps/compatdata/4176347364
ff7 相關安裝目錄:
(130)(deck@steamdeck ~)$ sudo find / -name 39140
/home/deck/.local/share/Steam/userdata/138196433/760/remote/39140
/home/deck/.local/share/Steam/steamapps/shadercache/39140
/home/deck/.local/share/Steam/steamapps/downloading/39140
/home/deck/.local/share/Steam/steamapps/common/Steam Controller Configs/138196433/config/39140
/home/deck/.local/share/Steam/steamapps/compatdata/39140
/home/deck/.local/share/Steam/appcache/librarycache/39140
/run/media/deck/SPCC/steamapps/temp/39140
/run/media/deck/SPCC/steamapps/compatdata/39140

ff7 dir : /run/media/deck/SPCC/steamapps/common/FINAL FANTASY VII
從 install.sh 挖出來的相關路徑:
ff7 dir : /run/media/deck/SPCC/steamapps/common/FINAL FANTASY VII
ff7 WINEPATH: /run/media/deck/SPCC/steamapps/compatdata/39140/pfx
ff7 RUNTIME: /home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/run
ff7 LIBRARY: /home/deck/.local/share/Steam
/home/deck/.local/share/Steam/steamapps/compatdata/39140/pfx/drive_c.org

STEAM_COMPAT_DATA_PATH=/run/media/deck/SPCC/steamapps/compatdata/39140 
STEAM_COMPAT_DATA_PATH=/home/deck/.steam/steam/steamapps/compatdata/39140
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/deck/.local/share/Steam

額外一個 pfx
/home/deck/.local/share/Steam/steamapps/compatdata/39140/pfx/drive_c.org

STEAM_COMPAT_APP_ID=39140
STEAM_COMPAT_DATA_PATH=/run/media/deck/SPCC/steamapps/compatdata/39140
STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/deck/.local/share/Steam 
/home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/run -- /home/deck/.local/share/Steam/steamapps/common/Proton\ 9.0/proton waitforexitandrun /VERYSILENT /DIR="Z:$INSTALL_PATH" /LOG="7thHeaven.log" # 需要 STEAM_COMPAT_DATA_PATH, STEAM_COMPAT_CLIENT_INSTALL_PATH 才能正確執行
/home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/run -- /home/deck/.local/share/Steam/steamapps/common/Proton 9.0 (Beta)/proton waitforexitandrun /home/deck/7th/7th Heaven.exe

/home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/run
 1 #!/bin/sh
 2 # Generated file, do not edit
 3 
 4 set -eu
 5 
 6 me="$(readlink -f "$0")"
 7 here="${me%/*}"
 8 me="${me##*/}"
 9 
10 dir=sniper_platform_3.0.20251216.191774
11 pressure_vessel="${PRESSURE_VESSEL_PREFIX:-"${here}/pressure-vessel"}"
12 
13 export PRESSURE_VESSEL_ARCHITECTURES=x86_64-linux-gnu:i386-linux-gnu
14 export PRESSURE_VESSEL_COPY_RUNTIME=1
15 export PRESSURE_VESSEL_RUNTIME="${dir}"
16 unset PRESSURE_VESSEL_RUNTIME_ARCHIVE
17 export PRESSURE_VESSEL_RUNTIME_BASE="${here}"
18 
19 if [ -z "${PRESSURE_VESSEL_VARIABLE_DIR-}" ]; then
20     export PRESSURE_VESSEL_VARIABLE_DIR="${here}/var"
21 fi
22 
23 exec "${pressure_vessel}/bin/pressure-vessel-unruntime" "$@"

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。