首先我要說這篇是真的淺談,因為我對動態編譯還不是很了解
只想大概說一下動態編譯帶來的影響
動態編譯,略稱是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帶來了提速,卻也相對失去了部分穩定性
不過其實總結起來仍然是利大於弊
這些負面影響都只對遊戲修改有所不便
對於不修改遊戲的玩家自然是影響不大
話就說到此,有誤還請小力點鞭