[閒聊] 復活邪神3 Bug Level Up -原理

作者: xiue (蘇)   2016-10-01 12:30:45
PttWeb圖文一起看: https://www.ptt.cc/bbs/Emulator/M.1475296249.A.5BA.html
說明BLU原理前, 得先了解RSAGA3有隊伍外升級的機制.
每個角色都有既定的初始能力,
但隨著遊戲進行、戰鬥次數、隊伍內角色成長,
已離隊一陣子的角色再次加入, 或從未加入的角色第一次加入,
能力都會比原先/預設的能力高出一些.
要細究隊伍外升級, 首先要介紹一個隱藏數據,
日文專欄稱為お供LV, 意義類似紅白機吞食天地的隊伍等級,
http://i.imgur.com/Hqpupzu.png
本文且用隊伍等級代稱.
RSAGA3隊伍外升級的機制是,
夥伴離隊會保留離隊當時的隊伍等級, 姑且命名為離隊等級,
從未加入過的夥伴沒有離隊等級, 所以是0.
角色初加入or再加入時, 他的能力值會是
預設能力值or離隊前能力值 + [ ( 隊伍等級 - 離隊等級 ) 再套入一個公式去算成長 ]
照理來說, 若所有角色離隊時都成功保存離隊等級
只能進行一般的隊伍外升級, 無法辦到BLU.
但由於當時科技還不發達, 遊戲設計十分計較儲存空間.
存檔只有配給隊伍外22名的空間儲存資料,
(日文專欄是說21個, 我測是22個, 有興趣請自行測試.)
當離隊超過22人, 系統只好「借用」隊伍內的記憶體保存人物資料, 程式話術就是溢出.
然而隊內「借用」的記憶體, 在存檔中不會保留人物的離隊等級.
導致RESET再加入時, 該員離隊等級以0去計算, 造成BLU.
用圖示來說明第一篇文章的實作
隊伍內 隊伍外
卡塔麗娜 01朱利安 12夏爾
哈曼 ┌ 02胖羅賓 13福布萊特
托馬斯 │ 03邁克爾 14妖精
胖羅賓 離隊 ┘ 04哈利德 15華特
05莎拉 16溫蒂妮
06艾倫 17波士頓
07莫妮卡 18芝琳
08諾拉 19白媚娘
09放浪娘 20楊芳
10保羅 21象
11羅賓 22繆斯
隊伍內 隊伍外
卡塔麗娜 01朱利安 12夏爾
哈曼 02胖羅賓 13福布萊特
托馬斯 離隊存檔 03邁克爾 14妖精
資料保留 04哈利德 15華特
05莎拉 16溫蒂妮
06艾倫 17波士頓
07莫妮卡 18芝琳
08諾拉 19白媚娘
09放浪娘 20楊芳
10保羅 21象
11羅賓 22繆斯
隊伍內 隊伍外
卡塔麗娜 01朱利安 12夏爾
哈曼 02胖羅賓 13福布萊特
托馬斯 03邁克爾 14妖精
04哈利德 15華特
RESET後失去 05莎拉 16溫蒂妮
離隊等級 06艾倫 17波士頓
07莫妮卡 18芝琳
08諾拉 19白媚娘
09放浪娘 20楊芳
10保羅 21象
11羅賓 22繆斯
隊伍內 隊伍外
卡塔麗娜 01朱利安 12夏爾
哈曼 02胖羅賓 13福布萊特
托馬斯 03邁克爾 14妖精
再加入造成BLU 04哈利德 15華特
05莎拉 16溫蒂妮
06艾倫 17波士頓
07莫妮卡 18芝琳
08諾拉 19白媚娘
09放浪娘 20楊芳
10保羅 21象
11羅賓 22繆斯
換人BLU
隊伍內 隊伍外
卡塔麗娜 01朱利安 12夏爾
哈曼 02胖羅賓 13福布萊特
托馬斯 ┐ 03邁克爾 14妖精
諾拉 │ 04哈利德 15華特
│ 05莎拉 16溫蒂妮
↑ 2.後離隊 06艾倫 17波士頓
│ ↘ 07莫妮卡 18芝琳
└ 1.先加入 ─ 08諾拉 19白媚娘
09放浪娘 20楊芳
3.重複BLU 10保羅 21象
11羅賓 22繆斯
作者: RuinAngel (左)   2016-10-01 16:35:00
早期遊戲真是容易在意想不到的地方有漏洞可鑽XD
作者: tonybin (Courage)   2016-10-01 19:11:00
push 舊遊戲的另類趣味
作者: protect6090 (山茶花)   2016-10-01 19:15:00
推!先推再看
作者: Cruel2 (君若無心我便休)   2016-10-01 20:02:00
推 蠻有趣的
作者: mune (越來越它了)   2016-10-01 21:38:00
推原理解說
作者: conpo (獅子たちの旗)   2016-10-01 22:00:00
感謝分享!
作者: cloverdiary (四葉草)   2016-10-01 22:03:00
太厲害了!
作者: mydoc (成為守護神)   2016-10-02 01:42:00
雖然很久前就看過 但還是要推的
作者: vaper (風雨飄搖的世代)   2016-10-02 02:07:00
雖然敘述得複雜難懂(了解後其實很簡單),不過有寫就有推簡單說就是隊外的"第23個"會借用到隊內的Ram位址 → 溢出
作者: os653   2016-10-02 09:29:00
我覺得寫的蠻好懂的呀,就爆表漏存資訊導致隊友被當新加入
作者: gfneo (gfneo)   2016-10-02 23:03:00
大推
作者: Bschord (bschord)   2016-10-04 01:34:00
玩成精了
作者: thioploca (喵喵狗)   2016-10-04 08:54:00
淺顯易懂

Links booklink

Contact Us: admin [ a t ] ucptt.com