由於你盒縱容網絡暴力加害者,且對受害者賬號進行限流操作,不會對索要鏈接的私信進行回覆,有需要的盒友移步粉色電視的同名文章,或在 GitHub 搜索 HorsenLiu/BalatroMods。
0. 前言
上一篇教程以「授人以漁」的方式教會了大家移植小丑牌 PC 版到手機上並添加 Mod。
無門檻學會移植 Balatro 小丑牌並添加 Mod
如果你沒有看過,可以點進去粗略地瞭解一下,以便更好地銜接上新的這篇。
當時比較可惜的是 Lovely 注入器不支持移動端,導致依賴 Lovely 的 Steamodded 1.0-alpha 在手機上運行不起來。只能退而求其次安裝 0.9.8 的舊版本,而且 Mod 版不能自定義卡面。不過現在我終於找到方法解決了所有問題!雖然有點麻煩,但可以讓移動端也能有 PC 端的 Mod 遊玩體驗。
你可能已經開始迷糊了。不要緊,先記住這幾個重要的東西:
移植工具:balatro-mobile-builder,用於生成移動端安裝包,支持同步存檔;
smods:全稱 Steamodded 1.0-alpha,所有模組的前置模組;
Lovely:smods 需要有它才能生效;
模組:也就是 Mod 文件,分為普通模組和 Lovely 模組,後面細說;
轉儲:Lovely 生成的 dump 文件,這次教程的主角。
下面正式開始,首先需要的前置條件:
PC 版 Balatro 小丑牌
可以訪問 GitHub 的網絡環境(推薦使用 Watt Toolkit 加速器)
手機和數據線(最好是原裝線,第三方線可能僅支持充電,不支持數據傳輸)
不會被殺毒軟件亂刪文件的電腦
沉著冷靜有耐心的大腦
注意:
如果你之前跟著上一篇教程操作過,需要先做兩個步驟:
把 PC 版的小丑牌恢復成原版狀態:打開 Steam,點擊庫,找到 Balatro,右鍵 -> 管理 -> 屬性 -> 已安裝文件 -> 驗證遊戲文件的完整性(或者直接卸載重裝);
把移動端的小丑牌卸載掉。如果移動端進度比較新,請一定把存檔同步給電腦端作為備份(相關教程在本文最後一部分)。
1. 運行移植工具
參考文章:GitHub - PGgamer2/balatro-mobile-builder
1.1 下載 balatro-mobile-builder
打開下載頁面(目前最新版本是 beta-0.9.4): https://github.com/PGgamer2/balatro-mobile-builder/releases
根據你的系統選擇其中一個 exe,大多數人應該都是下載【balatro-mobile-builder-win-x64.exe】

1.2 複製到 Balatro 本地文件
這一步大家應該都會吧。打開 Steam,點擊庫,找到 Balatro,右鍵 -> 管理 -> 瀏覽本地文件,把【balatro-mobile...exe】複製到裡面,保持和【Balatro.exe】在同一個文件夾中。


1.3 打開手機 USB 調試並連接電腦
這一步是為了方便直接安裝 apk 並同步 PC 版的存檔。由於大家的手機品牌都不一樣,建議自行搜索開啟 USB 調試的方法,基本上大同小異。
這裡以 MIUI / 澎湃 OS 為例:打開設置 -> 點擊我的設備 -> 全部參數與設備 -> 連續點擊 OS 版本(系統版本)進入開發者模式 -> 返回設置搜索「開發者」-> 點擊開發者選項 -> 往下翻,依次開啟 USB 調試和 USB 安裝。

手機通過數據線連接電腦,手機上會彈窗,點擊允許。
1.4 開始移植
雙擊【balatro-mobile...exe】,然後我負責給你逐步翻譯。
【Open the Android save manager (y/[n])? 是否打開安卓存檔管理器?】如果你是你一次安裝,就沒有存檔,直接回車。
【Apply FPS cap patch ([y]/n)? 是否安裝幀率上限補丁?】將幀率限制為設備的原始刷新率,建議安裝,直接回車。
【Apply Landscape patch ([y]/n)? 是否安裝橫屏補丁?】將遊戲鎖定為橫屏方向,建議安裝,直接回車。
【Apply High DPI patch ([y]/n)? 是否安裝高分辨率補丁?】啟用高分辨率圖形模式,建議安裝,直接回車。
【Apply Disable CRT patch (y/[n])? 是否安裝禁用 CRT 補丁?】禁用 CRT 著色器可能會導致畫面發白,不建議安裝,直接回車。
【Build for iOS (y/[n])? 是否為 iOS 構建?】如果你是 Android 設備,直接回車。
等待程序下載必備構建工具。這裡比較考驗你的「上網能力」,如果下載過程異常緩慢甚至中斷,就會因為文件不完整導致程序閃退。可以直接把我分享的工具複製到【Balatro.exe】的所在位置,程序檢測到就會跳過下載。
【Delete downloaded building tools ([y]/n)? 是否刪除構建工具?】這個就看你自己了,如果不想留,直接回車。
【Install to your Android device through USB ([y]/n)? 是否通過 USB 安裝到你的安卓設備?】直接回車,程序會自動下載 adb 工具,方便我們最後添加 Mod 用。安裝成功的輸出是這樣的:

如果程序沒有這樣走,點擊進入 platform-tools 文件夾,在文件管理器地址欄輸入 cmd 回車,在命令行窗口輸入 adb devices 回車檢測已連接的設備。如果 List of devices attached 下面是空白的沒有任何字符串,說明手機和電腦沒有連接上。
【Copy local saves to your device ([y]/n)? 是否複製本地存檔到你的設備?】這一步就是把 PC 上的遊戲存檔同步到手機,如果你需要,直接回車。
【Delete ADB ([y]/n)? 是否刪除 ADB 工具?】ADB 工具我們下一步有用,所以不要回車,直接關掉窗口就可以了。ADB 工具的文件夾叫【platform-tools】,記住它的名字和位置。
如果你對模組不感興趣,進行到這裡就可以結束了。打開手機上的 Balatro 享受和 PC 端一樣的遊戲體驗。
2. PC 端安裝 smods(Steamodded)
參考文章:Home · Steamodded/smods Wiki · GitHub
新版的 smods 不再需要拖動 exe 來注入代碼,而是作為一個模組(Mod)安裝到遊戲中。也就是說 smods 是所有其他模組的前置模組,不同的是它需要 Lovely 才能運行。說到 Lovely,現在越來越多的模組(特別是大型模組)都需要依賴 Lovely 了。
這裡教大家如何分辨普通模組和 Lovely 模組:
如果模組是一個文件夾,裡面有 lovely 子文件夾,說明是 Lovely 模組;
如果模組是一個文件夾,裡面有 lovely.toml 文件,說明是 Lovely 模組;
如果模組是一個文件夾,但裡面沒有 lovely 相關的文件,說明是普通模組;
如果模組是單個 lua 文件,說明是普通模組。
如果你圖方便,可以把所有模組都看作是 Lovely 模組。
當遊戲啟動時,Lovely 會讀取和自己有關的文件,以此來生成轉儲(dump)文件,這樣 smods 就生效了。smods 又把普通模組的代碼注入遊戲,這樣所有模組都生效了。
如果 Lovely 模組發生了更新、增加、刪除,遊戲啟動時轉儲文件也會發生變化;如果普通模組發生了更新、增加、刪除,轉儲文件則不會發生變化。所以說,轉儲文件和模組文件要搭配在一起,才能讓遊戲正常運行不報錯。
2.1 下載 Lovely 注入器
打開下載頁面(目前最新版本是 v0.7.1):https://github.com/ethangreen-dev/lovely-injector/releases
根據你的系統選擇一個 zip,大多數人應該都是下載【lovely-x86_64-pc-windows-msvc.zip】。解壓出來得到一個叫【version.dll】的文件。

2.2 複製到 Balatro 本地文件
這一步大家應該都會吧。打開 Steam,點擊庫,找到 Balatro,右鍵 -> 管理 -> 瀏覽本地文件,把【version.dll】複製到裡面,保持和【Balatro.exe】在同一個文件夾中(似曾相識?)。


2.3 下載 smods 和其他模組
打開下載頁面:https://github.com/Steamodded/smods/archive/refs/heads/main.zip
解壓後得到文件夾【smods-main】,和其他模組放在一起準備好。
2.4 複製到 Mods 文件夾
打開文件管理器,在地址欄輸入【%AppData%/Balatro】並回車。如果裡面沒有 Mods 文件夾,就手動創建一個。把 smods-main 和其他模組複製到這個 Mods 文件夾裡面。
至此,smods 就算是安裝上了。如果需要更新 smods,或者添加、刪除模組,都要在這個 Mods 文件夾裡變動。
3. 傳輸模組和轉儲文件到手機
參考文章:Lovely / Steamodded 1.0 mods on Android · Issue #137 · blake502/balatro-mobile-maker
現在到了最重要的一步。
為了讓 Lovely 模組能在移動端運行,這一次我們不僅要把模組文件傳進手機,還要把轉儲文件也傳進去。好在所有東西都在 Mods 文件夾中。
不過,對於移動端來說,這些轉儲文件會導致第 1.4 步移植時搞的那些補丁失效,所以我們還需要一個前置模組:BalatroMobileCompat。它和 smods 一樣也是 Lovely 模組,用於以模組的方式給移動端添加補丁,對 PC 端沒有影響。
3.1 下載 BalatroMobileCompat
由於第 1.4 步移植的時候我們沒有安裝「禁用 CRT 補丁」,為了大家方便,我直接把相關代碼註釋掉了。如果你需要自定義補丁,就下載解壓後自己修改 lovely.toml 文件,把不想安裝的補丁用 # 註釋掉。
打開下載頁面(目前最新版本是 v1.0.0):https://github.com/eeve-lyn/BalatroMobileCompat/releases
解壓得到【BalatroMobileCompat-1.0.0】。因為這是個 Lovely 模組,所以我們要先讓它在 PC 端生成轉儲文件。和 smods 一樣,把它複製到 Mods 文件夾中。
3.2 運行遊戲
啟動 Balatro.exe。如果遊戲正常運行不報錯,主菜單右上角顯示了 STEAMODDED,說明 smods 生效了,這也意味著我們得到了可用的轉儲文件。

接下來把包含模組和轉儲文件的 Mods 文件夾傳輸進手機,放到正確的位置,我們就能在手機上運行和電腦上一毛一樣的模組。
3.3 傳輸文件
理論上來說,你的手機現在還是連著電腦的。還記得第 1.4 步的時候留著沒刪的 ADB 工具嗎,它在 Balatro 本地文件中,文件夾名叫【platform-tools】。進入這個文件夾,如果你能看到【adb.exe】說明位置正確。在文件管理器地址欄輸入 cmd 並回車,打開命令行。

依次輸入以下命令並回車。要一字不差地輸入,最好複製粘貼(不包括前面的原點)
進入目標文件夾
cd %AppData%/Balatro
把 Mods 文件夾傳輸到手機
adb push Mods /data/local/tmp/balatro
把遊戲設置文件傳輸到手機(可選)
adb push config /data/local/tmp/balatro
adb push settings.jkr /data/local/tmp/balatro
進入手機命令行
adb shell
進入遊戲文件目錄
run-as com.unofficial.balatro
創建文件夾
mkdir -p files/save/game/SMODS
進入 game 文件夾
cd files/save/game
複製 Mods 到這裡
cp -r /data/local/tmp/balatro/Mods ./
複製遊戲設置文件到這裡(可選)
cp -r /data/local/tmp/balatro/config ./
cp /data/local/tmp/balatro/settings.jkr ./
複製轉儲文件到這裡
cp -r Mods/lovely/dump/* ./
複製 nativefs.lua 到這裡
cp Mods/smods-main/libs/nativefs/nativefs.lua ./
複製 json.lua 到這裡
cp Mods/smods-main/libs/json/json.lua ./
複製 version.lua 到 SMODS
cp Mods/smods-main/version.lua SMODS/
到這裡,我們已經完成 99% 的步驟了。最後,我們需要在 game 文件夾中創建一個【lovely.lua】文件,讓程序知道我們的 Lovely 是什麼版本,以及 Mods 文件夾具體在哪裡。
3.4 創建 lovely.lua 文件
大概率你也不知道 Mods 文件夾在哪裡,那就運行下面這個命令:
pwd
cmd 會輸出一個字符串,比如我這邊是【/data/user/0/com.unofficial巴拉巴拉】。注意看 com 之前的內容,也許你的和我的不一樣,反正把這串字符記住。
【/data/user/0/】
還記得 Lovely 注入器的版本嗎,我這邊是 0.7.1,把這串數字也記住。
【0.7.1】
有了字符和數字,就有了最後一個命令:
echo 'return { mod_dir = "/data/user/0/com.unofficial.balatro/files/save/game/Mods", version = "0.7.1" }' > "lovely.lua"
如果剛才你的兩個內容都和我一樣,直接粘貼到 cmd 運行。如果不一樣,就替換成你的內容再運行。
最後我們運行命令,看看 game 文件夾中都有什麼東西:
ls -l

當你做完這一切,在手機上啟動 Balatro,玩得盡興!
4. 設備之間同步存檔
當你愉快地在手機上打了幾局,想要把存檔同步給電腦。或者某一端的存檔直接覆蓋掉另一端的存檔,就參照下面的教程。
強烈建議操作前備份電腦存檔!存檔位置:C:\Users\你的用戶名\AppData\Roaming\Balatro 中名稱為 1、2、3 的文件夾
4.1 雙端存檔同步
手機和電腦連接,雙擊【balatro-mobile...exe】
【Open the Android save manager (y/[n])? 是否打開安卓存檔管理器?】輸入 y 並回車
【Sync saves between devices based on overall progression ([y]/n)? 根據整體進度在設備之間同步存檔?】直接回車,程序會對比手機和電腦的進度,讓兩端的存檔保持一致。
4.2 電腦存檔覆蓋手機存檔
手機和電腦連接,雙擊【balatro-mobile...exe】
【Open the Android save manager (y/[n])? 是否打開安卓存檔管理器?】輸入 y 並回車
【Sync saves between devices based on overall progression ([y]/n)? 根據整體進度在設備之間同步存檔?】輸入 n 並回車
【Copy local saves to device (y/[n])? 是否複製本地存檔到設備?】輸入 y 並回車。這一步會把電腦存檔複製到手機。也就是以電腦存檔為原本,手機向電腦看齊。
4.3 手機存檔覆蓋電腦存檔
手機和電腦連接,雙擊【balatro-mobile...exe】
【Open the Android save manager (y/[n])? 是否打開安卓存檔管理器?】輸入 y 並回車
【Sync saves between devices based on overall progression ([y]/n)? 根據整體進度在設備之間同步存檔?】輸入 n 並回車
【Copy local saves to device (y/[n])? 是否複製本地存檔到設備?】輸入 n 並回車。
【Copy device saves locally (y/[n])? 是否複製設備存檔到本地?】輸入 y 並回車。這一步會把手機存檔複製到電腦。也就是以手機存檔為原本,電腦向手機看齊。