CheatMaker 论坛

首页 » 游戏相关版块 » 游戏工具及相关 » [第1期] 重編譯模擬器
Blader - 2022/4/5 20:07:52
回复 30楼银河漫步的帖子

感謝版主!
改為OpenGL以後的確改善了~
Blader - 2022/4/7 13:49:26
刪除數個沒有必要編譯的模擬器
更新DeSmuME和Flycast
所有模擬器重編譯, 模塊起始地址均為0x400000
不過可能還是有少數64位版無法設置基地址
Blader - 2022/4/8 15:35:55
DeSmuME和Flycast例行性更新
Blader - 2022/4/10 7:42:04
DeSmuME和Flycast例行性更新
此外基於Flycast仍有在釋出穩定版
估計不會再每次追更了
將來只有在新的穩定版推出後才編譯
Blader - 2022/4/10 21:19:02
明明記得Flycast官方的msvc版有個小問題
可是卻怎麼也想不起來, 剛才試了下1.3的32位和64位
都沒發現什麼問題, 看來這個模擬器也不用我自己編譯了
Blader - 2022/4/11 12:09:30
DeSmuME不管選擇哪種GPU模式
都不能很好的顯示7th Dragon的畫面
melonDS倒是沒這問題, 感覺這模擬器真心不錯
就是對32位不太友善, 這點反而DeSmuME給我的感覺是比較好
畢竟官方未把32位支持完全去除
另外用clang-cl編譯的DeSmuME, 32位或64位的執行效率差沒多少
但都比msvc編譯得到的exe執行效率還要高, 算是一個好消息吧
不過不能用VS2022自帶的clang-cl, 應該用msys2的mingw32或mingw64之中的clang-cl
否則exe運行時提示找不到dll, 這點暫不清楚又是哪裡的bug...
Blader - 2022/4/14 14:50:43
DeSmuME例行性更新
貌似是GPU代碼有優化
測試機戰W最高提升了10幀
Blader - 2022/4/14 15:51:23
根據自己在DeSmuME源代碼中的探索
發覺根本沒有ENABLE_SSE4這個開關
所以才會設置這個開關卻顯示為SSSE3
反而是有ENABLE_SSE4_1和ENABLE_SSE4_2這兩個開關
自己添加到desmume.props文件中就可以指定這兩個開關了
實測SSE4.2+AVX2不會改變遊戲最大加速度
但調節速度卻可以提升, 例如透過"="鍵調節到4倍速
比起SSE2可以快上20幀, 以上同樣是以機戰W測試
至於為何用機戰W測試, 是因為這個遊戲不明原因
加速就是不能超過機戰K或L的幀數, 所以只要有影響到速度
我都會拿機戰W測試, 以上一點心得分享
遲些將分享SSE4.2+AVX的build, 敬請留意

更新: 已上傳分享
Blader - 2022/4/15 11:53:57
DeSmuME例行性更新
ppx分享的模擬器為方便老舊電腦使用
僅採用默認的SSE2編譯
本論壇分享的模擬器給有速度需求的玩家
採用SSE4.2+AVX2編譯
理論上DeSmuME還支持AVX512
但無奈我的電腦不支持這項指令集
就算編譯出來我自己也用不了
並且貌似也沒有模擬器會要求AVX512
那很多電腦都要被迫升級, 因此暫無法分享
Blader - 2022/4/15 15:34:23
找了ICC下來編譯DeSmuME
但是用ICC內部的clang-cl工具組
編譯出來的模擬器執行效率很低...
結論還是用MSVC+MinGW的clang-cl工具組編譯要安定
Blader - 2022/4/16 17:48:45
用了一個晚上的時間試驗一些編譯細項
再對挑選過的模擬器進行重編譯
發現還是有些64位模擬器可以因此順利查找基地址
即遊戲內存段位在0xFFFFFFFF之內
以下是幾個試驗成果
DeSmuME沒發現問題
Dolphin加載遊戲報錯, 但仍可以玩, 就是搜索不到數據和模擬器不穩定, 隨機崩潰
DuckStation加載遊戲即崩潰
FCEUX沒發現問題
Ootake沒發現問題
PCSX2可正常遊戲, 但不明原因曾出現破圖狀況和模擬器不穩定, 隨機崩潰
PPSSPP加載遊戲報錯, 無法運行遊戲
Project64沒發現問題
Snes9x沒發現問題
bsnes-plus, Flycast, Mednafen和melonDS無法使用MSVC編譯
因此沒有試驗報告, 貌似加載ISO媒體的模擬器都會有問題
反而加載ROM媒體的模擬器多數都可正常運作沒毛病
估計之後就會釋出調整過編譯參數的模擬器吧
Blader - 2022/4/18 16:07:49
用MSYS2始終找不到方法
可以令編譯出來的64位exe像MSVC編譯的一樣
完全使用32位的地址段
最關鍵的參數--disable-large-address-aware居然是32位exe限定
基本是束手無策, 另外印象中MSVC可以編譯Flycast
但剛才編譯卻總是失敗, 大概還不支持MSVC2022吧
目前想用MSVC編譯Flycast和melonDS都以失敗告終

題外話昨天下了RA來玩一下, 結果還是沒長進
32位版能用的core越來越少, 到底怎樣維護的
我看乾脆留下64位版就好了吧, 32位版根本變垃圾
對這模擬器越來越沒好感了真是
Blader - 2022/4/19 11:25:19
不是我要偷懶, 這幾天DeSmuME的更新
都是針對macOS的改動, 沒有Win系統的事兒
我也是會看更新內容才決定編譯不編譯的
一股腦的追新沒什麼意義, 還請各位見諒
Blader - 2022/4/20 12:27:05
DeSmuME例行性更新
取消分享SSE4.2+AVX2的build
採用clang-cl的SSE2編譯版執行效率已經很高
基本沒必要編譯多餘的版本
反而還令到部分老電腦無法運行模擬器

Flycast改採dev分支進行編譯
同樣為1.3正式版, 但相比master分支
多了Naomi 2遊戲的支持, 懂的都懂

重新補回幾個模擬器分享
共通點是64位版都能查找32位範圍的基地址
但僅限MSVC編譯的模擬器

Dolphin, DuckStation, PCSX2及PPSSPP
若比照編譯會有問題故不會分享
bsnes-plus, Flycast, Mednafen及melonDS
同樣無法比照編譯, 僅能做到模塊起始地址在0x400000

以上模擬器如使用上遇到問題還請反饋給我
會在確認後第一時間修正或下架
Blader - 2022/4/21 11:25:13
原來GLideN64有自己的編譯腳本
比起直接MSVC編譯果然還是靠譜不少
就是不知為何用過這個腳本以後
反而MSVC編譯一直失敗, 算了應該沒差
Blader - 2022/4/22 14:08:37
DeSmuME例行性更新

melonDS更新Qt版本至5.15.3
不用擔心, 模擬器仍為獨立exe, 不依賴dll

Project64重新編譯了GLideN64插件
依然是官方3.0.1使用的revision
就是改用源代碼自帶的編譯腳本編譯而已
Blader - 2022/4/23 5:54:19
不明白什麼情形... MSVC又能編譯GLideN64插件了
一下好一下壞搞得我好亂哪, 然後我發現編譯出來跟官方還是有點差別
revision的值我不管怎樣做都是8位數, 但官方版永遠都是7位數
不曉得是否我偷懶用MSYS2的Git的緣故, 可以一個軟件搞定的事情我很不想另外安裝其他軟件...
Blader - 2022/4/24 15:18:03
原來PCSX2 1.6.0如果編譯出64位版仍然可玩PS2遊戲
只是CPU模式不能使用Recompiler, 因為官方在1.6.0尚未支持64位版使用
不過關掉後仍然可玩PS2遊戲, 就是那速度可想而知的慢
要是沒開著控制台, 我可能還不清楚模擬器為何打開遊戲就會崩潰
看來可以編譯一份64位版給自己留念, 誰要官方在1.7.0中期捨棄了32位版支持
喜歡同時保留32位與64位版的我只能選1.6.0來編譯了
银河漫步 - 2022/4/25 10:47:56
dplphin现在的版本里那个dolphintool的exe是干啥用的?
Blader - 2022/4/25 12:01:08
回复 49楼银河漫步的帖子

usage: dolphin-tool COMMAND -h

commands supported: [convert, verify]

看上去是轉換或驗證iso文件一類的小工具
Blader - 2022/4/25 12:14:44
DeSmuME還是老樣子, 沒有Win系統的事兒不追更

追加分享Dolphin模擬器, 我編譯的版本可以指定以前使用的起始地址作為基地址
GC: 7FFF0000, Wii: 7FFF0000+8FFF0000, 數據大小懂的都懂, 不再贅述

重新分享DuckStation和PPSSPP模擬器, DuckStation的遊戲主內存段會在32位的地址範圍
我編譯的PPSSPP x64可以指定起始地址作為基地址, 起始地址為887F0000

PCSX2有可能會重新分享, 按理應該也是能使用32位地址範圍設置基地址, 敬請期待
不過還是不會有支持Win7或32位的版本出現, 這個我實在沒輒
不想用1.6.0的話基本還是放棄這個模擬器, 或是老實點升級電腦硬件吧...
Blader - 2022/4/25 14:09:10
重新分享PCSX2模擬器, 但Qt版我就沒分享了
粗估就算與wx版分開也同樣需要分卷壓縮
不想搞分卷壓縮就作罷, 我編譯的版本
模塊起始地址都會在0x400000, 改成這個地址以後
PCSX2遊戲主內存段大約都會落在
20000000, 30000000或40000000這三種位置

題外話, MSYS2編譯的exe比較無法控制遊戲內存段的地址
但MSVC編譯的exe則幾乎都是改了模塊起始地址
就能跟著改變遊戲內存段的地址, 當然Dolphin和PPSSPP
我在樓上分享的地址並不是真正的起始地址, 但同樣都能修改
如果需要用其他工具調試就得自己查找真正的遊戲內存段地址
不然一般用我給的地址去修改就可以的, 以上一點心得分享
Blader - 2022/4/25 19:33:20
反正都要再次編譯, 不如順便也更新了DeSmuME
再次編譯的原因是發現自己動手改過的編譯參數沒什麼卵用
基本還是固定模塊起始地址和指定起始地址為0x400000這兩個就夠用
大部分我用MSVC編譯的模擬器都能讓遊戲內存段在32位的地址內

Project64停止分享了3.0版, 改為分享4.0開發版
GLideN64插件更新到master分支的最新版

目前編譯採開發版的模擬器, 幾乎都是年更一族
bsnes-plus, DeSmuME, Dolphin, PCSX2和Project64
穩定版要等上數年才會出現, 這種我才編譯開發版
Blader - 2022/4/26 8:03:37
Qt版本大於5.12.12都要自己編譯
幾乎就沒見過誰分享32位的文件
因此雖然Qt版編譯不出來
但幸運的是DuckStation的SDL2介面32位版
我總算是編譯出來了, 試了下還真能玩
稍後就會放到ppx上給各位嘗鮮
银河漫步 - 2022/4/26 9:33:26
duckstation能32位挺好的,QT不行就算了
Blader - 2022/4/26 10:58:29
DeSmuME模擬器例行性更新, 雖然官方最近好像都在ARM的CPU和MacOS上折騰
幾乎就沒Win系統什麼事兒, 不過就順便更新下也無妨

DuckStation模擬器釋出32位編譯版, 只有SDL2版沒有Qt版
雖然不保證能解決, 但如果遇到64位沒有的問題都可以反饋哦

PCSX2, Project64模擬器例行性更新

題外話, Project64的專案文件有點怪, 按理不同平台(x86/x64)的設置不會共用
但我只要在一個平台設置Disable Large Address Aware, 另一個平台也會被設置
所以我乾脆都禁用了, 然後32位版起始地址變成動態, 64位版起始地址則固定為5FEA0000

順便說下DuckStation編譯32位版的過程, 過程中提示缺少SDL2.lib
原來是庫設置沒有被導向正確的位置, 在SDL2Compile.props中將x86改為Win32即可成功
但之後又卡在xxhash編譯失敗, 原來是有兩個32位專用的文件被排除在專案之外
重新加回就可以編譯了, 排除這兩個問題後應該就能正常編譯完成
Blader - 2022/4/26 11:26:16
Project64這回是打算跟風向64位看齊了是吧
4.0.0的32位居然出了狀況, 不先退出遊戲直接退出模擬器還會報錯
64位倒是沒有這個問題, 難道真的是越更新越多問題的模擬器?
Blader - 2022/4/26 15:25:14
原來不是我個人的問題, Qt官方從6.0開始不再支持32位系統
所以沒有預編譯文件, 有心的必須得自己搞
看來DuckStation的32位Qt版是無法編譯出來了
不過預編譯文件從5.13開始都只能在線安裝, 不再有離線安裝包
我打算用在線安裝再安裝個5.15, 看跟MSYS2自帶的是否相同
如果依賴的dll可以減少就好辦了
Blader - 2022/4/26 16:24:43
用預編譯文件編譯出來的exe果然不再依賴一票dll
於是我將bsnes-plus改採Qt5.15.2編譯
看上去沒什麼大問題, 若有原版不存在的問題歡迎反饋
Blader - 2022/4/26 20:18:03
Dolphin更新編譯環境為Qt5.15.2, 官方為Qt5.15.0
DuckStation更新編譯環境為SDL2.0.22及Qt6.3.0, 官方為SDL2.0.16及Qt6.1.0
若有原版不存在的問題歡迎反饋
12345678»
查看完整版本: [第1期] 重編譯模擬器