早期遊戲機的各種小知識
Full Stack
Discord Bot
Machine Learning
Unity
Competitive Programming
Web Crawler
Server Deployment
Minecraft Datapack
Scratch
History
Review
Loading
Audio
Video
遊戲機歷史發展
複習
讀取技術
不論是以前還是現在的遊戲機都需要透過卡帶去讀取遊戲
有別於現在的遊戲機
早期的所有遊戲資訊都是存在那卡帶裡面
既然大家都看得出來是透過這些接腳讀取遊戲資料的
但這背後究竟做了什麼呢
抱歉我只找到這張圖
之前我們學過RAM(隨機存取記憶體)
而ROM僅供讀取使用
屬於非揮發性記憶體
以二進位碼寫入而不是跟RAM一樣以電流儲存
之前我們學過RAM(隨機存取記憶體)
而ROM僅供讀取使用
屬於非揮發性記憶體
以二進位碼寫入而不是跟RAM一樣以電流儲存
寫在裡面的東西不會因為開關機而消失
常常作為韌體指令等等使用
當然也包括我們的遊戲機卡帶
在這些遊戲機卡帶插入時
會透過 mapper 直接將 ROM 映射到主機中
也就是說 其實這邊的讀取是不需要時間的
在這些遊戲機卡帶插入時
會透過 mapper 直接將 ROM 映射到主機中
也就是說 其實這邊的讀取是不需要時間的
而拿 NES 舉例
最簡單的 mapper 即為編號000的 NROM
有興趣的可以去看看
金手指是藉由讓機器讀取修改過的程式碼資料
藉此達到作弊的效果
金手指是藉由讓機器讀取修改過的程式碼資料
藉此達到作弊的效果
要知道修改/讀取記憶體的哪裡可以達到指定效果
你需要先透過一些分析取得特定資料存放位置
舉個🌰
我們知道讀取0x4000130值為特定bit內皆等於0時代表特定按鍵按下
我們知道讀取 0x4000130 值為特定bit的0時代表特定按鍵按下
以 select 按鍵為例
此時要偵測 0x4000130 的值是否有bin(100)=(4)個0
我們知道讀取 0x4000130 值為特定bit的0時代表特定按鍵按下
以 select 按鍵為例
此時要偵測 0x4000130 的值是否有bin(100)=(4)個0
我們知道讀取 0x4000130 值為特定bit的0時代表特定按鍵按下
以 select 按鍵為例
此時要偵測 0x4000130 的值是否有bin(100)=(4)個0
根據 NDS 的流程控制程式碼
9MMM MMMM BBBB VVVV
M: 記憶體位置
B: 位元遮罩
V: 值
此一程式碼表示讀取M的資料(稱為D)
並且以D在~B範圍內的值
與V做IF運算
若成立則運行到結束符前的下文
根據 NDS 的流程控制程式碼
9MMM MMMM BBBB VVVV
由於FFFF - 4 = FFFB
因此
M = 4000130
B = FFFB
V = 0000
if ((*M & ~B) == V) {
也就是說
94000130 FFFB0000
...
D2000000 00000000
表示偵測 select 按鍵被按下
執行...的內容
而D2000000 00000000是結束IF Block的意思
十分甚至九分的抽象
94000130 FFFB0000
...
D2000000 00000000
此一程式碼可以在以前的金手指內看到ww
音訊技術
我們知道的音樂
我們知道的音樂
電腦知道的音樂
我們知道的音樂
我們知道的音樂
電腦知道的音樂
我們聽到的聲音在電腦面前不過就是一個波型圖
而構成不同音樂的基礎單元也就從人類認為的
鋼琴、人聲、吉他等等
變為
sine波、square波、triangle波等等
濾波器(filter)
能夠將特定頻率以上/下的波過濾掉
過濾高頻的是 low-pass filter
過濾低頻的是 high-pass filter
回到主題
以紅白機為例
它的聲音只有5個頻道可供輸出
也因為頻道之少 在音效發出時常常得停下BGM
而我們熟知的瑪利歐主題曲等等
就是在那如此貧脊的創作空間下完成的
影像技術
如果今天要你讓螢幕顯示一張圖
你覺得它是如何顯示的
如果今天要你讓螢幕顯示一張圖
你覺得它是如何顯示的
痾不是這個圖
如果今天要你讓螢幕顯示一張圖
你覺得它是如何顯示的
顯然是透過一格一格的色彩通道
如果今天要你讓螢幕顯示一張圖
你覺得它是如何顯示的
而當時的紅白機是這樣的
在今天我們的電腦通常是使用RGB作為通道
能顯示的顏色非常非常多
(2^24)
4*16=2^6 就這樣 沒了
由於顯示器的低畫質以及顏色的貧乏
在以前的遊戲機畫面總有種類似的風格
這也是現在一些走復古懷舊的遊戲會呈現的風格
一種不太算3D的技術
當時的2D橫向卷軸遊戲常會使用
使前後方物件移動速度不同來達到看起來不同距離
被使用在超任的技術
將一個2D圖片經過矩陣運算讓他看起來像3D
讓我們看看範例
被使用在超任的技術
將一個2D圖片經過矩陣運算讓他看起來像3D
讓我們看看範例
他會將一個圖的每部分經過線性變化後平移
應用像是讓遠景變得更扁
使其看起來像是3D
可以使用 Scratch 簡單模擬類似功能
Scratch 乳滑了