↓ 快轉到主要內容

SFC《ルドラの秘宝》畫面閃動

·589 字·2 分鐘
作者
Miyako

問題突然出現
#

當 16×12 對話系統大概算完成之後,就開始處理選單。換字一開始是挺順利的,但在商店切換買、賣、裝備的時候,畫面會直接閃一下,而且還有字會直接消失,變成空白。

調查結果
#

原本以為是撞到原版上傳機制,後來才發現是兩個 bug 一起出現。

原版假名是預先放好的,但中文字不在原本機制裡面,所以另外找了一塊沒人用的 VRAM,做成逐畫面上傳。大部分的情況沒有問題,後來才發現商店比較特別,它會在每次 VBlank 都進行重繪,原版就吃掉很多的上傳空檔,實際能夠塞入的機會不是很多。道具店那邊使用的字不算多,沒什麼問題,但武具店那邊字太多,全部塞進去的話,就會超出 VBlank,所以就直接出現畫面閃動。

在選單系統那邊已經追過 VRAM,找到適合的位置放入,但沒料到的是,那些覺得空閒的位置,在商店系統時是有其他用途的。直接塞進去就搶到它的地盤,所以反覆多操作幾次就開始掉字。

解法
#

  • 掉字: 把多踩到的地方還給原本遊戲。
  • 閃動: 降低補字至每一幀最多 4 字,確定在安全範圍才上傳。

但還是踩到了坑,上傳太後面結果整批被丟掉,字就完全亂掉了,或者蓋到暫存器的值,整個畫面炸掉。

最後
#

還是有沒解到的部分,因為每幀上傳字數降低,所以要分好幾幀才補得完。裝備畫面字太多,名字會在很短的時間內一個個冒出來,仔細盯著看是會有破綻的。

另外教訓就是,我量到的不代表每個場景都適用,雖然很類似但不一定完全相同,選單可用不代表商店也可用。