MSX 伊蘇 III 硬碟強化版

《伊蘇 III:來自伊蘇的冒險者》(Ys III: Wanderers from Ys)是日本 Falcom 推出的經典動作角色扮演遊戲,以主角亞特魯的冒險故事為核心。這款作品曾推出多種家用電腦與遊戲主機版本,也是《伊蘇》系列發展歷程中具有代表性的作品之一。

本次介紹的是 ToughkidDev 在 GitHub 上公開的 MSX 伊蘇 III 硬碟強化版 專案,隸屬於 MSX 遊戲改作相關的 MsxRemakes 專案庫。從專案名稱來看,這個版本與 MSX 版《伊蘇 III》的硬碟使用或強化功能有關,適合對 MSX 老遊戲、硬碟環境及復古電腦遊戲保存有興趣的玩家研究。

專案原始碼與下載:

https://github.com/ToughkidDev/MsxRemakes/tree/main/YS3HDD-ENHANCED

比較表

項目原作 (1989, 磁碟片)當前構建版本 (Enhanced Build)
媒介5.25″ 磁碟片 5 張,切換區域時需更換磁碟1 個 HDD 鏡像檔,無需換片。同時收錄日/英文版
音源主機內建 PSG 3 聲道專用Makoto(YM2608) / MSX-MUSIC(YM2413) / SCC·SCC-I / PSG 備援方案 — 共 31 首
音樂·音效共享相同的 PSG 3 聲道偵測到外接 PSG 時,將音樂與音效進行物理分離
水平捲軸以 8 像素為單位跳躍,操作時為 6.4 Hz (約 51 px/s)V9958 硬體捲軸,每幀 VBlank 進行 4 像素內插補間
垂直捲軸以 8 條掃描線為單位利用 R#23 進行微調硬體捲軸
硬體捲軸暫存器R#23·R#25·R#26·R#27 全皆未使用 (恆為 0)R#19 光柵分割 + 使用 R#23/R#25/R#26/R#27
單一圖塊相機移動—turbo R:146.12 → 100.21 ms
MSX2+:183.86 → 162.48 ms
CPU標準 Z80 3.58 MHzPanasonic 高速模式 5.37 MHz / turbo R R800 自動切換
存檔使用者磁碟 1 張,直接寫入磁區 (Sector)DOS 檔案格式,5 個插槽共享 + BAK/日誌型自動修復
語言版本各自獨立啟動時可選擇:1 日本語 / 2 英語
最低 RAM 需求64 KBMapper RAM 256 KB

1. 媒介與執行方式

  • 原作: 包含遊戲片 1 張 + 劇本片 3 張 + 使用者存檔片 1 張。每當跨越遊戲區域時就必須更換磁碟(區域 0→D1,1·2→D2,3·4→D3,5→D4)。
  • 當前構建版本: 將所有檔案完全解開,作為 MSX-DOS2 / Nextor 的一般檔案放入單個 HDD 鏡像檔中。本版本並非將磁碟鏡像掛載為虛擬磁碟,而是直接將遊戲的絕對磁區 I/O 進入點與換片函式改寫為檔案讀取。同時將日/英雙語言資料包含在同一個鏡像檔中,並在啟動時供玩家選擇。

2. 音樂

  • 原作: 僅使用主機內建的 PSG (AY-3-8910) 3 聲道。
  • 當前構建版本: 改編了 Mega Drive (MD) 版《伊蘇 III》中 YM2608 的 31 首原曲,並針對三種音源進行了重新編曲,系統會自動確認硬體配備並選擇最適合的音源。若未偵測到相容音源,則降級使用原始 PSG 播放。為了保留原汁原味,MSX 特有的原創工作人員名單(Staff Roll)等部分曲目仍維持 PSG 版本演奏。
    • Makoto (YM2608) — 支援 FM、SSG、節奏、ADPCM-B。
    • MSX-MUSIC (YM2413)
    • SCC / SCC-I — SCC-I 與普通 SCC 共享音樂資料。
    • 降低音樂 IRQ 開銷 — 將原本每幀複製遊戲記憶體的路徑,改為引擎段落(Segment)的臨時映射,使得測試區段的平均 CPU 佔用時間從 R800 約 2.07ms 降至 1.73ms、WX 高速 Z80 約 7.43ms 降至 5.52ms,大幅提升效能。

3. 音效與 PSG 分離技術

  • 原作: 由於音樂和音效共享相同的 PSG 3 聲道,當音效響起時,音樂的某些聲部就會被強行中斷。
  • 當前構建版本: 系統會自動偵測 MegaFlashROM SCC+ SD / MegaFlashROM SCC+ / SuperSoniqs Darky 等外接硬體。一旦檢出,便會將音樂的 PSG 聲部導向第二組(外接)PSG 卡帶,而將音效留給主機內建的 PSG 處理。偵測優先順序為:Darky → MegaFlashROM → 主機內建 PSG。在沒有音效播放時,最多可同時使用 SCC 5 聲道 + PSG 3 聲道;若音效請求 C 聲道或 B+C 聲道,則會將該聲道及公共噪聲週期讓給音效驅動程式。

4. 畫面與捲軸控制

  • 原作: 在 SCREEN 5 (256×192) 模式下,以 (16,16) 為基準,將 224×128 像素的遊玩區域繪製於 VRAM 頁面 1/2 的雙重緩衝區(Double Buffer)中。在長達 1 萬 5 千幀的運作中,完全未使用任何硬體捲軸暫存器(R#23·R#25·R#26·R#27 恆為 0),且 32 個硬體精靈(Sprite)也全數關閉,所有畫面皆由 VDP BitBlt(區塊傳送)進行軟體合成。畫面呈現為「遠景固定 + 近景 1 倍速」的雙平面結構。
  • 當前構建版本: 沿用上述底層結構,但在 V9958 (MSX2+ / turbo R) 硬體上,利用 R#19 行中斷將畫面切分為 3 個區段:上方為遊戲頁面 + R#23/R#26/R#27 捲軸偏移量,下方為 UI(狀態欄)頁面 + 偏移量 0,並於 VBlank 期間全數重設。畫面左側 8 像素則透過 R#25 的 MSK 功能加以遮蔽。藉此實現邊框與下方狀態欄固定不動、僅遊玩區域單獨捲軸的效果。
    • 水平捲軸: 透過 R#26 (8 像素單位) + R#27 (0–7 像素微調),在每幀 VBlank 進行 4 像素單位的動態補間。將原作「每 9.4 幀跳躍 8 像素」的卡頓感,改善為平滑的 4 像素單位移動。
    • 垂直捲軸: 利用 R#23 進行微調移動,並在遊玩區域頁面配置了 8 行的保護帶(Guard Strip)。
    • 優化: 對於不需重新合成背景的區域,將其作為 32 列的 VRAM 環形緩衝區(Ring Buffer)循環使用,僅重新繪製有變動的圖塊(Tile)。保持原本的背景視差(遠景固定)。片頭動畫、劇情事件、對話及選單則沿用原始的描繪方式。
    • 舊硬體相容: 舊型 MSX2 (V9938) 則維持原始渲染器模式運作。
    • 繪圖模式選擇: 在 V9958 機型上選完語言與音源後,可選擇 1 Quality (畫質優先/預設) 或 2 Performance (效能優先)。效能優先模式會固定遠景的相機移動,並重複利用未發生變動的地形與背景合成結果。

5. 運行速度與補正

  • 遊戲引擎啟動時,會自動開啟 Panasonic FS-A1WX/WSX/FX 等機型的硬體高速模式 (5.37 MHz),若為 turbo R 則透過 BIOS CHGCPU 切換至 R800 ROM 模式。普通 MSX2 則維持原始速度。
  • 急加速現象補正: 為解決在高時脈 CPU 下,當畫面固定時主角移動速度會異常暴增的問題,系統會透過 VBlank 計算各區域捲軸更新時間的「4 次移動平均值」,並在相機停止時讓系統自動等待不足的時間。以村莊固定畫面為基準,主機的更新率從 ST 約 38.5 → 7.9 次/秒、WX 約 15.4 → 6.4 次/秒,使遊戲速度回歸正常。

6. 儲存系統 (Save)

項目原作當前構建版本
儲存媒介使用者磁碟(磁碟片),直接寫入磁區HDD 內的一般 DOS 檔案
存檔欄位1 個5 個,日/英文版彼此共享
容錯機制無防寫死或損壞應對措施DAT + BAK + 遊戲進度日誌(Journaling)。寫入中斷時支援備份自動修復
其他特性—支援存檔欄位預覽、檔案 100 KiB 預先分配(防系統頻繁建立/刪除碎片化)
  • 實際 DOS 中斷測試驗證: 在故意將插槽 5 的第一個磁區損壞,並於第 13 個 4 KB 區塊執行 close(關閉檔案)時強制結束遊戲。結果顯示,無論在「日文版/ST主機/SCC-I」或「英文版/WX主機/OPLL」環境下,重啟後皆能順利復原 48 位元組的關鍵狀態,成功接續先前的遊戲進度與音樂。

8. 最終執行環境對照表

機型渲染器 (Renderer)CPU 運作時脈支援音源
MSX2 (V9938)原始軟體描繪標準 Z80 (3.58 MHz)SCC-I · SCC / MSX-MUSIC / Makoto / PSG
MSX2+ (V9958)硬體捲軸 + Quality/Performance 模式Panasonic 高速模式 (5.37 MHz)同上
MSX turbo R硬體捲軸 + Quality/Performance 模式R800 ROM 模式同上
  • 最低記憶體要求: Mapper RAM 256 KB。

blog.ocam.live
blog.ocam.live

關注科技新聞、SEO、人工智慧、電玩模擬器、程式設言、與 IT 日常等議題,深入簡出文章的說明並持續追蹤相關新聞的發展與報導。