level 7
Mach-O
楼主
最近我寫了一套給 RetroArch 使用的 Shader,想在現代螢幕上,盡可能還原初代 Game Boy 和 GBA SP 背光螢幕原本的效果。
現在很多懷舊 Shader,都是憑印象調出一種「老螢幕顏色」,再混合前後幾幀做出拖影。
但只靠感覺調整,很容易走向兩個極端:有些把 Game Boy 調成非常鮮豔的綠色;有些雖然灰暗復古,最後卻更像文曲星,而不是初代 Game Boy。
它們可能很有懷舊氛圍,但還原的往往是「印象中的 Game Boy」,不一定是真正的 Game Boy 螢幕。
我先放兩張開啟 GB Shader 後的實際畫面。大家可以看看這個顏色、螢幕質感和殘影,是不是更接近你記憶裡的初代 Game Boy。

我的方法可以簡單概括成四個字:先量,再算。
我先把實際量測得到的色彩、灰階和黑位帶進模型,再正確轉換到標準 sRGB。也就是先確定原始螢幕每一級應該呈現什麼顏色,而不是隨便套上一層綠色濾鏡。
接著,我把遊戲畫面轉換成模擬的電訊號,再用這些訊號去驅動虛擬的液晶像素。
每個像素都會保留之前的狀態,再根據電壓、液晶材料和掃描過程,計算下一刻的變化。所以畫面中的拖影、串擾和殘像,不是後來加上去的模糊特效,而是從物理模型中自然產生的。
GBA SP 後期的 AGS-101 背光螢幕使用了不同的液晶技術,因此我也為它單獨建立了一套模型,並使用實際量測和校色資料還原它的色彩與黑位。
下面左邊是模擬器原始輸出,右邊是開啟 AGS-101 Shader 後的效果。兩邊的差別不只是飽和度,而是整體色彩、黑位、畫面層次和液晶像素的感覺。

開發過程中,我查閱了大量當年的液晶研究文獻,也參考了真機量測、螢幕驅動資料,以及同年代相似液晶材料的實驗數據。
我想做的不是另一個「有老螢幕感覺」的濾鏡,而是從顏色、電訊號到液晶反應,重新模擬這兩塊螢幕的顯示方式。
現在這套 Shader 已經開源,可以直接在 RetroArch 中使用。下載後解壓到 RetroArch/shaders,再載入對應的 preset 即可。記得關閉模擬器核心自帶的混幀功能,避免重複計算拖影。
网页链接
2026年08月19日 17点08分
1
現在很多懷舊 Shader,都是憑印象調出一種「老螢幕顏色」,再混合前後幾幀做出拖影。
但只靠感覺調整,很容易走向兩個極端:有些把 Game Boy 調成非常鮮豔的綠色;有些雖然灰暗復古,最後卻更像文曲星,而不是初代 Game Boy。
它們可能很有懷舊氛圍,但還原的往往是「印象中的 Game Boy」,不一定是真正的 Game Boy 螢幕。
我先放兩張開啟 GB Shader 後的實際畫面。大家可以看看這個顏色、螢幕質感和殘影,是不是更接近你記憶裡的初代 Game Boy。

我的方法可以簡單概括成四個字:先量,再算。我先把實際量測得到的色彩、灰階和黑位帶進模型,再正確轉換到標準 sRGB。也就是先確定原始螢幕每一級應該呈現什麼顏色,而不是隨便套上一層綠色濾鏡。
接著,我把遊戲畫面轉換成模擬的電訊號,再用這些訊號去驅動虛擬的液晶像素。
每個像素都會保留之前的狀態,再根據電壓、液晶材料和掃描過程,計算下一刻的變化。所以畫面中的拖影、串擾和殘像,不是後來加上去的模糊特效,而是從物理模型中自然產生的。
GBA SP 後期的 AGS-101 背光螢幕使用了不同的液晶技術,因此我也為它單獨建立了一套模型,並使用實際量測和校色資料還原它的色彩與黑位。
下面左邊是模擬器原始輸出,右邊是開啟 AGS-101 Shader 後的效果。兩邊的差別不只是飽和度,而是整體色彩、黑位、畫面層次和液晶像素的感覺。

開發過程中,我查閱了大量當年的液晶研究文獻,也參考了真機量測、螢幕驅動資料,以及同年代相似液晶材料的實驗數據。我想做的不是另一個「有老螢幕感覺」的濾鏡,而是從顏色、電訊號到液晶反應,重新模擬這兩塊螢幕的顯示方式。
現在這套 Shader 已經開源,可以直接在 RetroArch 中使用。下載後解壓到 RetroArch/shaders,再載入對應的 preset 即可。記得關閉模擬器核心自帶的混幀功能,避免重複計算拖影。
网页链接


