[新聞] jgenesis v0.9.0
jgenesis v0.9.0
以下是機翻潤飾
自上次發布 (v0.8.3) 以來的重要變更:
- 徹底修改了 Genesis / Sega CD / 32X 的低通濾波器選項,與 v0.8.3 的設定相比,
應該更準確地模擬實際硬體。
- 透過更高品質的音訊重新採樣,提高了所有模擬系統的音訊品質。
- 大量修正 Genesis、Sega CD、32X、SMS、Game Gear、SNES、Game Boy [Color] 的
錯誤。
- 大幅修正 Linux AppImage 版本在 Wayland 中的錯誤。
- 儲存狀態檔案現在使用 zstd 進行內部壓縮,在大多數情況下應該會減少 70-80% 的
檔案大小。
- 為 Sega CD 新增基本的 CPU + CD-ROM 光碟機超頻選項,相容性較低,但確實有助於
某些遊戲。
完整的變更日誌如下。
新功能
- (Genesis / Sega CD / 32X) 使用一組新的選項取代了 v0.8.3 中新增的低通濾波設定
,這些選項應該更準確地模擬實際硬體。
* 新增將一階 3.39 KHz 低通濾波器應用於 Genesis 音訊輸出的選項;
預設為開啟(與先前預設設定的最大變更)。
* 新增將二階 7.97 KHz 低通濾波器應用於 Sega CD PCM 音訊輸出的選項;
預設為開啟。
* 新增個別設定 Genesis 低通濾波器是否應用於 Sega CD 和 32X 音訊輸出的選項
;這些預設都為關閉。
- (Genesis / SNES) 新增一個新的視訊設定,以停用少數使用交錯顯示模式的遊戲中的
反交錯(例如《音速小子 2》在 2P 對戰模式中,《伊蘇 III》(Genesis)啟用了
遊戲中的「Int Mode」選項,《Air Strike Patrol》在任務簡報畫面中)。
* 啟用反交錯符合先前版本的行為:正常解析度的交錯模式顯示與漸進模式相同,
而高解析度的交錯模式則使圖形處理器每幀渲染所有 448/480 行。
- (Sega CD) 新增一個選項,可透過降低主時脈分頻器來超頻子 CPU 。
- (Sega CD) 新增一個選項,可以在讀取資料軌道時提高光碟機速度 。
* 它的相容性較低,但可以縮短某些遊戲的載入時間。當子 CPU 超頻時,
相容性會稍微提高。
- (Sega CD) 為 6 點立方 Hermite 插值新增一個額外的 PCM 晶片插值選項,在某些情
況下,它產生的聲音比 4 點立方 Hermite(現有設定)稍微乾淨一些。
- 新增一個新的熱鍵,可以快速切換是否啟用超頻設定,適用於支援超頻的系統(包括
Sega CD 新增的光碟機速度設定)。
* 這主要用於 Sega CD,其中提高光碟機速度可以縮短遊戲過程中的載入時間,但
幾乎總是會破壞 FMV 和動畫過場動畫。
改進
- 重寫了音訊重新採樣程式碼,以使用視窗化 sinc 插值演算法,該演算法的品質比先前
的重新採樣實作高得多,而且效能成本相對較低(對於大多數模擬系統)。
* 視窗化 sinc 插值對於 NES 和 GB/GBC 音訊重新採樣來說效能非常密集,
因此這兩個系統都有一個新的音訊設定,可以在視窗化 sinc 插值和舊的
重新採樣演算法(低通濾波器後接最近鄰插值)之間進行選擇。
- (Genesis) 透過最佳化 VDP 渲染和磚塊提取程式碼,稍微提高了效能。
- (Genesis) 前端現在將 .gen 和 .smd 識別為 Genesis / Mega Drive ROM 映像的檔案
副檔名。
* 這包括嘗試自動偵測 ROM 映像何時被交錯(.smd 檔案常見),並在載入時將其
解交錯。
- (SMS) 「裁剪垂直邊框」視訊設定現在預設為啟用而不是停用;與左邊框不同,
垂直邊框只會顯示目前的背景顏色。
- (SMS) SMS 模型設定現在預設為 SMS1,它模擬了 VDP 硬體的一個怪癖,
這是日文版《伊蘇》正確渲染所必需的。
- (SMS / Game Gear) 降低了導致《Virtua Fighter Mini》中過於冗長的日誌輸出的警
告訊息的日誌等級。
- (SNES) 在使用 SA-1 協處理器的遊戲中,SA-1 CPU 現在每次存取 SA-1 BW-RAM 時都
會獲得一個等待週期,類似於實際硬體。
* SA-1 CPU 在某些情況下仍然比實際硬體執行速度更快,因為匯流排衝突等待週期
沒有被模擬。
- GUI:開啟需要 BIOS ROM 或韌體 ROM 的遊戲(例如任何 Sega CD 遊戲)時,
如果未設定 BIOS/韌體 ROM 路徑,則錯誤視窗現在包含一個按鈕,
用於設定適當的 ROM 路徑並立即啟動遊戲。
- CLI:如果不存在設定檔,CLI 現在會嘗試將預設設定寫入設定路徑,
以便可以根據需要手動編輯。
- 儲存狀態檔案現在使用 zstd 進行內部壓縮,這應該會減少至少 50% 的儲存狀態檔案
大小,通常減少 70-80%。
- 前端現在應該可以正確處理具有大寫檔案副檔名的檔案。
多系統修正
- 修正音訊重新採樣程式碼中的效能錯誤,該錯誤可能由於對次正規化浮點數執行
算術運算而導致間歇性極差的效能,在某些 CPU 上,這種運算可能比正常浮點數算術
慢 100 倍。
- Linux:AppImage 版本現在在封裝期間排除所有與 Wayland 相關的系統函式庫;
這修正模擬器在某些發行版(例如 Solus Plasma)中無法啟動的問題。
- Linux/BSD CLI:僅針對這些平台且僅針對 CLI,還原了估計視窗縮放因子的變更,
因為 SDL_GetDisplayDPI 在 Linux/BSD 上傳回的數值不可靠。
- 調整了幀時間同步的睡眠實作,以修正幀時間同步可能導致某些平台速度變慢的問題。
- 儲存狀態檔案現在被明確地版本化,這修正嘗試從不同版本載入不相容的儲存狀態檔案
時可能發生的當機。
Genesis / Mega Drive 修正
- 修正 68000 被錯誤地允許在 Z80 佔用匯流排時存取音訊 RAM 的問題;
這修正《戰鬥原始人》中的凍結。
- 修正 Z80 RESET 未清除 Z80 的 HALT 狀態的問題。
- 修正寫入 YM2612 F-num high / block 暫存器($A4-$A6 和 $AC-$AE)立即生效
而不是在下次寫入 F-num low 暫存器後生效的問題;這修正《Valis》中
的一些音樂故障。
- 實作了更準確的模擬,即 YM2612 如何從相位和封包衰減計算運算子振幅。
- 修正當《音速小子與納克魯斯》鎖定到具有 SRAM 的卡匣(例如《音速小子 3》)時,
遊戲內儲存無法正確運作的問題。
- 修正由於具有非標準的卡匣 ROM 位址映射,某些版本的《QuackShot》無法正確載入的
問題 。
- 修正一些錯誤的 68000 運算碼錯誤地解碼為「有效」指令的問題。
- 修正一個與 sprite 磚塊/像素溢位如何與 H=0 sprite 遮罩互動相關的邊緣情況。
Sega CD 修正
- 為小尋找距離實作了更高的最小尋找時間;這修正《Thunder Storm FX》(JP)無法啟
動的問題。
- 修正 v0.8.3 中引入的一個回歸錯誤,該錯誤導致 PCM 晶片通道在啟用後跳過第一個
樣本的問題(由於第一個樣本通常為 0,因此實際上沒有聽覺差異)。
- 修正在高於 0x0800 / 32552 Hz 的取樣率下,PCM 晶片循環行為的模擬略微不準確的
問題。
- 修正 CD-DA 音量衰減 1-3(共 1024 級)的模擬不準確的問題(應該是 50-60 dB 的
衰減,而不是完全靜音)。
- 未映射/未知的位址存取現在會記錄錯誤,而不是讓模擬器當機。
32X 修正
- 修正 PWM 重新採樣程式碼中的一個重大錯誤,該錯誤導致 PWM 音訊輸出聽起來比預期
的更爆音和噼啪聲。
- 修正一個與將 SH-2 存取同步到 32X 通訊埠相關的錯誤,該錯誤可能導致在某些情況
下跳過寫入;這修正《Sonic Robo Blast 32X》展示版中的凍結。
- 顯著改善了 32X VDP 中斷對 SH-2 的定時。
- 顯著改善了 SH-2 和 68000 之間的同步。
- 修正透過 DREQ1 的 PWM DMA 傳輸速率未考慮 PWM 計時器間隔的問題;這修正
《BC Racers》中損壞的音效 。
Master System / Game Gear 修正
- 修正 Z80 的 RETI 指令未像 RETN 一樣正確地將 IFF2 複製到 IFF1 的問題;這修正
《Desert Strike》在您按下 Start/Pause 時凍結的問題 。
- 修正對非二的冪的 ROM 大小的處理不正確的問題,這修正幾個自製遊戲和展示。
- (Game Gear) 修正如果遊戲啟用 VDP 的 224 行模式(就像自製遊戲《GG Turrican》
那樣),模擬器當機的問題。
SNES 修正
- 在模式 7 中間計算中實作了更準確的剪裁和截斷;這修正《Tiny Toon Adventures:
Wacky Sports Challenge》中損壞的模式 7 圖形。
- 模式 7 暫存器現在會在掃描線開始前約 12 像素處鎖存;這修正了《Battle Clash》
在遊戲區域底部附近,畫面從 Mode 1 轉換到 Mode 7 時出現的
glitchy line (錯誤線條) 問題。
- 盡力實作了在活動顯示期間切換強制消隱對 sprite 的影響;這主要修正一些測試此功
能的測試 ROM。
- 調整了 APU 通訊埠的行為,當 65816 在同一週期內寫入一個埠時,SPC700 清除該埠
;這修正《鬼神童子-天地鳴動》無法啟動的問題。
Game Boy [Color] 修正
- 實作了一個模糊的行為,其中脈衝通道在通電後應該輸出恆定的 0,直到第一個相位增
量之後;這修正《大工の源さん ロボット帝国の野望》中缺失的語音樣本。
- 修正一個與脈衝通道相位計數器在透過 NR13/NR14/NR23/NR24 進行頻率變更的同一
週期內重新載入相關的錯誤;這與上述變更結合,修正《携帯電獣テレファング》中
缺失的語音樣本。
- 為硬體怪癖新增模擬,其中模式 2 STAT 中斷似乎每幀觸發 145 次,而不是 144 次;
這修正《GBVideoPlayer》。
- CGB 調色盤 RAM 自動遞增標誌現在預設為 1。
- 稍微調整了與啟動 PPU 相關的定時;這與上述變更結合,修正《GBVideoPlayer2》。
- 修正一個邊緣情況,其中在行開始時寫入 LYC 未在某些條件下觸發 LY=LYC STAT 中斷
;這修正《SQRKZ》自製遊戲標題畫面上的故障圖形。
- OBJ 調色盤 RAM 的內容現在在通電時隨機化。
https://github.com/jsgroth/jgenesis/releases/tag/v0.9.0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.83.198 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1739541650.A.A36.html
推
02/14 22:41,
4天前
, 1F
02/14 22:41, 1F
推
02/15 12:50,
4天前
, 2F
02/15 12:50, 2F
Emulator 近期熱門文章
PTT遊戲區 即時熱門文章