9.24.2025

SFC模擬器-漢化遊戲亂碼問題(大部份轉錄)

SFC模擬器-漢化遊戲亂碼問題

若照正常的SFC程式設計來說....

對於漢化後的遊戲,其記憶體所能夠並呈現的文本量是遠遠不夠的!

所以漢化版採用了一項特別的技術「強刷顯存」來支援更多的漢字顯示

雖然SFC硬體本身不支援這種操作

但早期的模擬器們並沒有加入相關限制

全力模擬每一行程式碼的所呈現效果

(大概是出於運行效率的考慮吧?畢竟發行版本的遊戲不太可能加入這種本應無效的操作)

所以早期模擬器也就能夠順利運行各式各樣的漢化Rom

不過隨著電腦性能的提升和SFC模擬水準的進步

精確的再現實體機性能成為了各大SFC模擬器的最終目標

於是這項硬體本身不允許的操作理所當然的被過濾掉了....

這也就是造成我們所看到的亂碼問題最大原因!


時至今日,幾乎所有還在維護的SFC模擬器都引入了這個限制

所幸有些模擬器已經提供了高級選項「 BlockInvalidVRAMAccess」

可以手動關閉這個過濾的選項

因此使用上需要留意一下。


Snex9x 的情況


在選項中找到[設置]-[系統]

找到[限制無效的VRAM進程]並將之切換到[關閉]

以記事本打開snes9x.conf 或 snes9x.cfg

找出[Settings]

BlockInvalidVRAMAccess並改成BlockInvalidVRAMAccess=FALSE

存檔後重啟模擬器即可

RetroArch的情況

在玩 SFC 遊戲時,按下 Select + X(或你設定的 Hotkey) → 進入 Quick Menu → Core Options -> Emulation Hacks,找到 “Block Invalid VRAM Access” 選項,把它設 OFF(或 FALSE)
Save States或是:
修改後可以在 Overrides → 儲存 Core Overrides(儲存給這個核心)

 

5.14.2025

steamloader.dylib' (fat file, but missing compatible architecture (have 'i386,x86_64,arm64', need 'arm64e')), (有效解法)

 問題根源:為什麼 dyld 說「need arm64e」?

  1. 你的 M4 Pro Mac(硬體支援 arm64e 指令集與 Pointer Authentication)啟動的遊戲可執行檔,其 slice 是 arm64e

  2. Steam 在啟動遊戲時,用 DYLD_INSERT_LIBRARIES 強制先載入 steamloader.dylib,但這個檔只含 i386/x86_64/arm64 三個 slice,沒有 arm64e

  3. 如果 SIP(System Integrity Protection)已關閉,dyld 會信守環境變數去插入這個不相容的 dylib,結果就爆出你看到的錯誤。

  4. 啟用 SIP 時,受保護的程式(已開 Hardened Runtime 的簽名 App)會被 dyld 直接忽略 DYLD_INSERT_LIBRARIES,遊戲就能正常跑。Apple Developer


最簡單的修復方式:重新開啟 SIP

適用對象:除非你平常真的需要關掉 SIP(例如裝自訂 kext),否則這是一步到位的解法。

  1. 重開機到「恢復模式」

    • 由關機狀態,長按電源 / Touch ID → 看到「載入啟動選項」。

    • 點「選項 (Options)」→「繼續」。

  2. 進入「工具程式 > 終端機」。

  3. 執行

    bash
    csrutil enable reboot
  4. 開機後在 macOS 再確認:

    bash
    csrutil status # 應顯示 System Integrity Protection status: enabled

    再從 Steam 啟動 CK3 / V3 / Stellaris 就不會再跳 arm64e 錯誤。Steam 討論區與 Paradox 論壇也有人證實「Enable SIP」可解決 Exit Code Null / steamloader 錯誤。

2.12.2025

command not found: poe (問ChatGPT,沒試過)

 command not found: poe

ChatGPT 說:

如果你運行 poetry run poe lint 時出現 command not found: poe,可能有以下幾個原因:


1️⃣ 未安裝 Poe the Poet

poePoe the Poet 提供的命令,請先確認它是否安裝:

✅ 檢查是否已安裝:

sh
poetry show poethepoet

如果沒顯示 poethepoet,你需要安裝它。

📌 安裝 Poe the Poet:

sh
poetry add --dev poethepoet

然後嘗試再次運行 poetry run poe lint


2️⃣ poethepoet 未設置為 Poetry 插件

即使你已經安裝了 poethepoet,Poetry 可能無法識別 poe 命令。嘗試顯式調用:

sh
poetry run python -m poethepoet lint

如果這樣可以運行,表示 poe 命令沒有自動註冊,你可以這樣解決:

sh
poetry self add "poetry-plugin"

然後重新運行 poetry run poe lint


3️⃣ Poe 可能沒有添加到 pyproject.toml

請確保你的 pyproject.toml 文件中包含這個部分:

toml
[tool.poe]

如果沒有,你需要手動添加並配置任務,例如:

toml
[tool.poe.tasks.lint] cmd = "flake8 ."

然後再試試 poetry run poe lint


4️⃣ Poetry 的虛擬環境未激活

如果你在系統的全局環境執行 poetry run poe lint,但 poethepoet 只安裝在 Poetry 虛擬環境內,那麼 poe 可能無法識別。

你可以手動進入 Poetry 的虛擬環境:

sh
poetry shell poe lint

如果這樣可行,說明 poetry run poe lint 可能不是必要的,你可以直接使用 poe lint


🔍 最後檢查

如果還是不行,你可以試試這個:

sh
poetry run poe -l

看看是否有可用的 poe 任務。如果 poetry run poe 都無法執行,那麼問題很可能是 poethepoet 沒有安裝或沒被識別。

試試這些方法,看能不能解決你的問題!🚀

(open-gopro-tutorials-py3.12) pi@a5:~/Downloads/OpenGoPro-main/demos/python/tutorial$ poetry run python -m poethepoet --version
/home/pi/.cache/pypoetry/virtualenvs/open-gopro-tutorials-yv2s6YFQ-py3.12/bin/python: No module named poethepoet
 

Finally using "pip install poethepoet"

It seems works.