Game-Boy-Advance

取出 GBA 墨盒時出現故障聲音的原因是什麼?

  • May 3, 2022

mGBA鏡像)中的範例 -聲音警告

當您從通電的 GBA 中取出遊戲卡帶時,會發出可怕的、響亮的故障聲。我可以說循環聲音的一小部分是刪除時音頻緩衝區中的任何內容(也許我對此有誤),但其餘部分是什麼?任天堂為什麼不簡單地創建一個螢幕,上面寫著:

Game Pak 已被不當刪除。請關閉並重新打開 Game Boy Advance。

GBA 和舊款任天堂掌上電腦的設計比後來的 DS 和 3DS 設計要簡單一些。在 GBA 上,卡帶基本上是記憶體的擴展,與後來的設備相比,卡帶更像是 SD 卡並且可熱插拔。因此,當您從 GBA 中拉出購物車時,您將刪除該記憶體並留下一個大洞。這不僅包括正在播放的聲音數據,還包括本身正在執行的程式碼。這會觸發您基本上可以稱之為崩潰的情況。

從理論上講,這種情況是可以解決的,但與台式電腦或更高版本的控制台不同,沒有太多記憶體或空間來儲存備份常式並在使用者拉出磁帶的罕見情況下保持它們的載入。

至於故障噪音,我不能 100% 確定它到底是什麼,但如果我猜測一下,我會說它與“DMA”(直接記憶體訪問)有關,這是一個GBA 提供的硬體加速基本上讓軟體說“請在後台將一些數據從 X 地複製到 Y 地”。當傳輸發生時,CPU 可以繼續前進並做其他事情。這很重要,因為磁帶上的記憶體訪問相對較慢(比 RAM 慢得多,但甚至比 SSD 還要快)。這通常在聲音處理過程中使用,因為聲音數據往往需要比圖形更頻繁地載入。

我的猜測是,當你讓 CPU 崩潰時,DMA 會出現故障,要麼複製太多,要麼寫垃圾或其他東西,結果是……聽起來不太好聽。

引用自:https://gaming.stackexchange.com/questions/397106