# GC《陽光瑪利歐》Any% ACE TAS 筆記 {%youtube 2_DeEV7WOp8 %} ------ # TAS 製作 作者:zelpikukirby (大福)、su 調査協力:sup39、Noki doki 追記 (re-records):45151 模擬器 Dolphin 5.0 Lua Core,使用四隻 GameCube 手把 觸發 Cutscene Underflow Glitch,利用 ACE 輸入代碼做到 Credit Warp ------ # 即時過場動畫的播放機制 遊戲提供 8 個 Slot 來記住即時過場動畫, 並且會去追蹤檢查「最新進度 (Cutscenes Started)」, 以及「已經放送 (Cutscenes Ended)」各自的 Slot 編號 動畫開始播放時,「最新進度」的 Slot 編號就會 +1, 然後把動畫內容放進 +1 後的 Slot (例如,Slot 3 + 1 = Slot 4,遊戲會把最新進度的動畫內容放到 Slot 4) 當 Slot 全部填滿後,又會從頭開始覆蓋填過去 每當動畫結束,「已經放送」的 Slot 編號也會按相同規則操作, +1 之後,變成和「最新進度」一樣 當兩者 Slot 編號相同,實際上就代表「已經播完最新一集辣!」, 完成處理即時過場動畫的播放事件 ------ # Cutscene Underflow Glitch ::: info 觸發 Cutscene Underflow Glitch 之後會把動畫重播一圈 https://youtu.be/xhUd0e0Sgwo ::: 通常「已經放送」的 Slot 編號會跟上「最新進度」, 一旦沒跟上,就代表還有動畫沒播出來,就會持續播放下去 如果我們在一個動畫的播放期間,又突然插一個 Shine Get 動畫, 就會導致「已經放送」的 Slot 編號 +2,反而超前領先 例如,「最新進度」為 Slot 5, 「已經放送」就會是 Slot 4 +2,變成 Slot 6, 用 Slot 編號來算一下,要播放的動畫數量居然是 5 - 6 = -1? 這個時候就會觸發 Cutscene Underflow Glitch, 遊戲會把 -1 理解為 8 - 1 = 7,重播一圈已經播放過的動畫, 但通常不會發生有趣的狀況 (・ω・、) ------ # 亂數調整 Part 1 - 特定的即時過場動畫 時間點大概在 7m 45s ~ 8m 35s 即時過場動畫會根據海豚鎮的狀態變化 (泥漿怪、影子瑪莉歐是否在場等等) 在公主被綁架事件期間,如果我們讓右側鈴鐺塔的 Shine 出現, 動畫內容就會有一個特定值:8134A65C,並且放到 Slot 4 (Slot 1 ~ 3 先放了藍幣出現動畫 x2,還有山丘關入口出現動畫 x1) 要注意的是,進去山丘關會讓 Slot 重置洗掉,所以會一直留在海豚鎮, 這邊我們只好穿牆取得兩個 Shine,觸發泥漿怪入侵事件 ------ # 亂數調整 Part 2 - 修改已經播放過的動畫 時間點大概在 9m 15s ~ 9m 32s 先前放到 Slot 4 的 8134A65C, 原本已經播放過的、亂數調整 Part 1 的 Shine 出現的動畫內容, 現在是時候對動畫內容動手腳了 在泥漿怪入侵事件期間,調整 Turbo Gate 在畫面上的攝影機視角資料, 就會變更 8134A65C 的動畫內容 取得理想位置後,視角移開不要再看,防止洗掉 (後續 Slot 5 ~ 8 放了 Shine Get 動畫 x2,藍幣出現動畫 x2) ::: info Turbo Gate 是指用 Turbo 能力去水上漂,然後被撞爛的門 亂數調整中的 Turbo Gate 其實還在畫面上,只是我們被擋住看不到 https://youtu.be/HvjCcNHPyJY ::: ------ # 四隻手把 最後,我們在藍幣出現動畫期間 Shine Get, 觸發了 Cutscene Underflow Glitch,就會重播一圈已經播放過的動畫 那麼,修改過後的 Slot 4 的動畫內容變成什麼樣子呢? 答案是:根據玩家的四隻手把輸入決定 其實剛剛調整的 Turbo Gate 攝影機視角資料, 就是要把處理遊戲控制器的輸入資料的位置,寄放到 8134A65C 當遊戲要播放 Slot 4 的 Shine 出現動畫時,會去 8134A65C 裡看看有什麼東西, 結果就是被我們丟包到手把輸入區,因此就可以按按鍵來輸入代碼了 這個 ACE 連接了四隻手把, 輸入播放結局和避免當機的程式碼,就可以看到結局動畫 ------ # 參考資料 https://tasvideos.org/8911S #8911: zelpikukirby & su's GC Super Mario Sunshine "any% arbitrary code execution" in 09:50.40 - Submission #8911 - TASVideos TASVideos 的投稿記錄 https://www.nicovideo.jp/watch/sm43448125 【TAS】スーパーマリオサンシャイン 任意コード実行 in 9:50.49 - ニコニコ TAS 作者的 日文影片解說 https://youtu.be/2_DeEV7WOp8 [TAS] Super Mario Sunshine Arbitrary Code Execution Any% in 9:50.49 - YouTube TAS 作者的 YouTube 影片 https://youtu.be/xhUd0e0Sgwo Watching 8 Cutscenes Prevents Super Mario Sunshine from Crashing https://youtu.be/u_3iNRO3DYY Cutscene Underflow Demo https://pastebin.com/H7jutG6w Shine Spawn Cutscene Underflow ACE https://youtu.be/HvjCcNHPyJY Super Mario Sunshine Delfino Plaza Turbo Nozzle Gate Blue Coin ------
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up