遊戲年代 GOAL GOAL

 找回密碼
 立即註冊
搜索
查看: 1893|回復: 51

[PC版模擬器] [SFC模擬器] SuperSnes9x 1.63.23 繁/簡/英文版

[複製鏈接]

17

主題

161

帖子

3487

積分

銀牌會員

Rank: 5Rank: 5

積分
3487
發表於 2026-6-20 14:29:37 | 顯示全部樓層 |閱讀模式
本帖最後由 good7 於 2026-7-4 09:41 編輯

2026/07/04 更新

模擬器的開發者給我回覆了,他說這個問題 snes9x 就有了。
sshot-49.png

有興趣的人看這裡:
https://github.com/shanytc/snes9x/pull/153


2026/07/02 更新

發現一個 bug,

在渲染器如果從 vulkan 切到 Direct3d/DirectDraw 時,
會發生畫面凍結,聲音還在繼續播的狀況,
就算點程式內的硬體、軟體重置也沒辦法,
只能重新啟動程式才能解決。


這個 bug 在最新官方的 v1.63.24 中也一樣未修復。(可能未發現)

本來有嘗試修復,但是越追越深入,感覺可能不好找到。

又使用這個切換就很少人會做的(不會將效能高的切到效能低的吧。)
(我七、八年前的 gtx 1060 都可以跑 vulkan 了,現在的電腦怎麼不行跑。)
使用率真的不高,很少會觸發,所以不修了,

只能看有沒有管道,回報給開發者去處理了。


還有 CRT Royale 只能在 vulkan 渲染器下用而已,不能用在 OpenGL 上面,
會有一些問題,在此告知。

(有下載過的人建議重新下載。)
下載(擇一下載):

https://u.pcloud.link/publink/sh ... buLMEqAdxTn6f047P9y

SuperSnes9x-16323_finel4.7z.RAR (4.73 MB, 下載次數: 32)



2026/07/01 更新
一些顯示錯誤的更新。
增加「載入遊戲」更改熱鍵的設定(對想要單鍵開檔的人有用。)

20.png


有發現一個新問題,暫停開放下載。

21.png

2026/06/30 更新(正式版)
這是「正式版」發佈,還是一樣,有修復一些錯誤,和最佳化一些內容,其中沒有很詳細的記錄,
只有這幾個比較重要的最佳化列出來。

所以這個版本會比原版效能好一點,也會比較好用一些。

以後如果有空,或是我想再改造它的話,說不定還會
更新版本。

===================================
SIMD 最佳化列表 (平行運算)
===================================

[H-1] COLOR_ADD / COLOR_SUB / COLOR_ADD_BRIGHTNESS 色彩合成
  檔案: z:\s9\gfx.h
  行號: 138-154 (COLOR_ADD::fn)
        156-161 (COLOR_ADD::fn1_2)
        166-175 (COLOR_ADD_BRIGHTNESS::fn)
        186-199 (COLOR_SUB::fn)
        201-205 (COLOR_SUB::fn1_2)
  性質: 每幀數萬至數十萬像素都會呼叫,SNES 色彩數學最底層
  SIMD: SSE2 一次 8 像素、AVX2 一次 16 像素
       _mm_add_epi16 / _mm_sub_epi16 / _mm_avg_epu16 / _mm_max_epi16
  困難度: 中 (channel mask + carry 偵測要小心)
  預期加速: 3-5x


[H-2] 渲染主熱點 Normal1x1Base:raw (NOMATH 路徑)
  檔案: z:\s9\tileimpl-n1x1.cpp
  行號: 12-25 (Draw 函式)
  性質: 每個可見像素都走這路,Z-buffer 測試 + 寫入 ScreenColors
  SIMD: SSE2 一次 8 像素 LUT gather + store
  困難度: 中 (Z-buffer 不規則)
  預期加速: 2-4x


[H-3] 渲染主熱點 DrawTile16:raw (8 像素 tile 內迴圈)
   檔案: z:\s9\tileimpl.h
   行號: 241-307
         內迴圈 266-268: for (x=0; x<8; x++) { Pix=bp[x]; DRAW_PIXEL(x,Pix); }
   性質: 每個 tile 每列都跑一次
   SIMD: SSE2 _mm_shuffle_epi8 / _mm_i32gather_epi16 (AVX2) 做 LUT gather
   困難度: 中
   預期加速: 2-4x


[H-4] Display 像素格式轉換 (RGB565 -> RGB888/RGBA8888)
   檔案: z:\s9\win32\win32_display.cpp
   行號: 785-913 (Convert16To24)
         915-983 (Convert16To32)
   性質: 每幀整個畫面都跑一次,57K-230K 像素
   SIMD: SSSE3 _mm_shuffle_epi8 一次轉 4 像素 (Convert16To24 非 blending 路徑)
         SSE2 _mm_unpacklo_epi16 + _mm_sll_epi32 一次 4 像素 (Convert16To32)
         AVX2 _mm256_cvtepu16_epi32 + _mm256_sll_epi32 一次 8 像素 (Convert16To32)
   困難度: 低 (經典案例)
   預期加速: 4-6x

其中的 CRT Royale 濾鏡效果實在太好了,
有空大家可以一試。

123.png

2026/06/25 更新

這是正式版發佈前的最後一版,請有時間有意願的人幫忙測試,如果有問題的話,請反應一下,而如果沒有問題的話,
語系檔就重新整理梳理一下,就是最後的正式版了。

這版我加入了 Crt Royale 的濾鏡,讓它變成內建的了,如果沒有使用 Reshade 或是不知道有這種東西的人,也可以享受「復古」的味道,
這個濾鏡的預設值,我叫 ai 上網尋找最經典的參數,把它設成「預設值」,如果你們想調這個也可以調的,參數並不是綁死的。

還有修復一些其它的錯誤,並且這版我用 Clang 來編譯,效能最大化編譯的。

另外之前說的「程式睡眠」與 reshade 相衝,我在 reshade 6.73 的版本並沒有發現問題,功能可以正常執行。

reshade 下載網址:
https://reshade.me/downloads/ReShade_Setup_6.7.3_Addon.exe

sshot-30-1.png

sshot-4.png

Crt Royale 效果
sshot-14.png
sshot-19.png


2026/06/24 更新
這次更新再修復網路對戰一些問題,應該不會再偶爾有錯誤出現了。

新增一個功能:程式睡眠
這個功能就是啟用後,你關閉程式後,下次打開時,就接著上次的遊戲狀態,就跟你關閉前的狀態一致,不過,有網路連線對戰時,
不會記錄這個。
就跟windows 作業系統的「休眠」類似,想玩就玩,想關掉就關掉,下次接著玩。

sshot-13.png

另外,我再加上 reshade 的著色器插件效果,按 home 鍵可叫出設定選單出來,
下面就是著名的 Crt-royale 效果。

123.png


2026/06/21 更新

這次更新網路對戰的 netplay 部份,原來在測試到這裡的時候,發現連線有問題,所以修了一下,
先丟上來,讓想測試的人也試看看,我只有一台電腦,也不能測出什麼,硬碟空間也沒有了,虛擬機也裝不下,
所以只能借助各位大大有時間的可以來測一下了,先謝謝了。

在這裡增加這個選項,客戶端按下去就可以連線了(限定在區域網路下面。),如圖,紅框處。

sshot-30.png
同一電腦可以開兩個程式,一個伺服器端、一個客戶端來連線,當然最好的是,有兩台不同的電腦測試最好的了。

以下,是一台伺服器,開 3 個客戶端,同一台電腦,理論上,區域網路的話應該都能連得到,我總共測 4 台連伺服器在內。
sshot-32.png

這個檔案是從 github 下載來重新編譯的,已經翻譯成並內建「繁體、簡體、英文」三種了。

https://github.com/shanytc/snes9x/releases

這個分支專案也是很新的,好像是程式員與克萊德ai共同協作開發出來的。

不多說了,這版的中文化還是測試版,不過,基本上已經98%都翻譯好了,有些是受限的因素,所以保留它,比如遊戲畫面中的訊息,
那是 ascii 編碼的,所以不能放中文了。我還想測試其它東西,並且看哪邊還有錯誤,和可不可以再最佳化一下。

有興趣的人可以玩玩,有問題可以丟上來給我,謝謝。

這個我還加了兩個功能,一個是程式進入時「自動載入上次玩的遊戲」和「倒帶時靜音」的功能。

並且也修了一些錯誤。

sshot-5.png
sshot-4.png

sshot-2.png


sshot-3.png
畫面預讀取(Run-Ahead) 是 Snes9x 的延遲降低功能,目的是讓輸入反應更即時,特別適合需要精準操作的反應型遊戲(格鬥、動作、節奏類)。
原理(單句話)
每幀渲染時,先往前預模擬 N 幀並丟棄結果,只用它產生的輸入狀態立即渲染當前幀,等同把輸入延遲從一幀壓到接近零

為什麼會有延遲

模擬器正常流程是:

[取輸入A] → [模擬1幀] → [畫面輸出]
  ↑                                                    │
  └───── 玩家看到畫面 ──────┘


玩家看到畫面後才按鍵 → 輸入延遲約 1 幀(NTSC 約 16.7 ms,PAL 約 20 ms)。

預讀取的解法

[取輸入B] → [模擬N幀+渲染] → [畫面輸出]
   ↑                                                 │
   └───── 玩家看到畫面 ─────┘


執行時實際做:
  • 讀取玩家最新輸入
  • 把遊戲狀態回捲到上一幀
  • 用新輸入重模擬 N 幀
  • 渲染最後一幀到螢幕
對玩家而言:看到畫面 → 按鍵 → 下一幀就反映輸入,沒有 1 幀延遲。

程式碼中的對應
  • 選單:ID_EMULATION_RUNAHEAD_OFF/1/2/3/4(langutil.cpp:160-164)控制 N 值(0/1/2/3/4 幀)
  • i18n 字串:STR_MENU_EMULATION_RUNAHEAD_*
  • 翻譯版翻為「Run &Ahead」(「預讀取」/「預先模擬」)

效能代價
  • CPU 負擔 ×N+1 倍:每顯示 1 幀實際跑 N+1 次模擬
  • 不影響遊戲邏輯:丟棄的預模擬幀不寫入存檔、不影響電影重播
  • 對慢電腦吃力:CRT 螢幕時代 16.7 ms 不敏感,現代高刷新率螢幕才明顯

適用情境[td]
適合
不適合
格鬥遊戲(出招反應)
慢速策略遊戲
動作平台(精準跳躍)
效能吃緊的電腦
節奏遊戲
想要完全還原主機時序的模擬純化派
高刷新率螢幕玩家
60 Hz 螢幕下差異較小

與 netplay 的關係
預讀取不能用於網路對戰——它模擬的幀沒經過網路同步,會破壞 lockstep。Snes9x 會在 netplay 啟用時自動停用。

補註:但是倒帶記憶體的使用量會變多,看使用幾幀預讀取,就乘以倒帶所吃的記憶體(就是多n幀的倍數的意思。)
就是開啟預讀取,使用倒帶功能的記憶體增加的使用量。



評分

參與人數 7威望 +2 金錢 +115 貢獻 +2 收起 理由
風間涼 + 15 好用的SFC老字號模擬器..
egg606231 + 10 感謝分享
dixo + 15 感謝分享
mitren + 5 精品文章
nnm11111 + 1 + 30 + 1 原創內容
conanluo + 10 精品文章
ili789 + 1 + 30 + 1 感謝分享

查看全部評分

回復

使用道具 舉報

0

主題

355

帖子

327

積分

中級會員

Rank: 3Rank: 3

積分
327
發表於 2026-6-20 15:31:49 | 顯示全部樓層
能網路對戰就是讚~~~
找不到答案的時候,就去看一看這個世界
回復

使用道具 舉報

5

主題

74

帖子

561

積分

高級會員

Rank: 4

積分
561
發表於 2026-6-20 16:20:17 | 顯示全部樓層
感谢大大的分享
回復

使用道具 舉報

6

主題

465

帖子

892

積分

禁止訪問

積分
892
發表於 2026-6-20 21:38:07 | 顯示全部樓層
一定要收藏的啦~~~
りしれ共さ小 !!!爆烈唾棄白目噁爛無意義腦殘垃圾糞回應~~
回復

使用道具 舉報

0

主題

387

帖子

716

積分

高級會員

Rank: 4

積分
716
發表於 2026-6-20 23:25:53 | 顯示全部樓層
感谢大大的分享
回復

使用道具 舉報

0

主題

505

帖子

1183

積分

高級會員

Rank: 4

積分
1183
發表於 2026-6-21 00:07:09 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

7

主題

5757

帖子

5439

積分

金牌會員

Rank: 6Rank: 6

積分
5439
發表於 2026-6-21 00:33:36 | 顯示全部樓層
感謝廣大無私熱心提供的分享資訊-SFC模擬器
回復

使用道具 舉報

6

主題

734

帖子

1107

積分

高級會員

Rank: 4

積分
1107
發表於 2026-6-21 01:07:35 | 顯示全部樓層
謝謝分享~~
回復

使用道具 舉報

0

主題

135

帖子

565

積分

高級會員

Rank: 4

積分
565
發表於 2026-6-21 08:23:50 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

0

主題

5157

帖子

4655

積分

金牌會員

Rank: 6Rank: 6

積分
4655
發表於 2026-6-21 08:58:57 | 顯示全部樓層
感谢大大的分享,畫面很讚而且還是中文化的
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|小黑屋|遊戲年代 GOAL GOAL

GMT+8, 2026-9-4 14:23 , Processed in 0.021925 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表