Blader - 2017/9/18 5:30:24
首先我要說這篇是真的淺談,因為我對動態編譯還不是很了解
只想大概說一下動態編譯帶來的影響
動態編譯,略稱是DynaRec或JIT,在模擬器上可以帶來提速
提速多寡要視電腦硬件而定,就我所知提速最多的模擬器是Dolphin
不信的可以把Dolphin的JIT關掉再來打開GC或Wii遊戲
那速度可以說是慘不忍睹,Wii遊戲甚至趨近0fps,根本不能玩啊...
以上是以我的電腦來測試的,我相信再好的電腦硬件應該...
應該都要打開JIT才能玩得順暢,不過其他模擬器就算不開JIT卻也不至於這麼慘烈
真不懂這其中的奧妙
接著說下JIT帶來的負面影響,JIT的打開與否會造成內存數據的變化
當然沒打開JIT時的內存數據才是正常的,打開JIT以後
PPSSPP內存地址0x08804000開始的4字節數值會改變
(這就是為什麼搜索基址時必須從地址0x08804004開始的數值搜索起)
DeSmuME內存地址0x02000000雖然沒發現數據變化
但是作弊碼會變得無法隨時起作用,至少機戰是這樣
(作弊碼的這個影響Citra也有,同樣至少機戰是這樣)
此外依照DS遊戲的不同,可能會需要減少block size
有的需要調整至15或12,甚至根本不能打開JIT
不過印象中block size到了某個值以後其實跟100的速度沒什麼分別
倒也不一定每次都要設置100,是說關於JIT有細項的模擬器貌似也只有DeSmuME
雖然也就block size可以調整
或許是因為想要得到什麼就必須犧牲對等的代價
JIT帶來了提速,卻也相對失去了部分穩定性
不過其實總結起來仍然是利大於弊
這些負面影響都只對遊戲修改有所不便
對於不修改遊戲的玩家自然是影響不大
話就說到此,有誤還請小力點鞭
Blader - 2017/11/28 6:52:57
目前Citra的各種提速代碼貌似都是基於JIT已啟用為前提
但是在這種狀況下反而會遇到許多無法預期的問題
禁用JIT以後可以說幾乎感覺不到提速,卻反而不會有啟用JIT時的問題
目前山猫二四大神編譯的最新版本,如果啟用了JIT
精靈寶可夢第七世代作品在特定場合會有0fps的問題
不過以GCC和LLVM來說,卻是目前提速最多的非官方編譯版
期待後續的代碼修正~