---
# System prepended metadata

title: magc 遊戲掌機計畫
tags: [專題, magc, 遊戲掌機]

---

---
type: slide
---

# magc 遊戲掌機計畫
![](https://hackmd.io/_uploads/SyPmIk7I2.jpg =640x)
makecode arcade game console

---

# 一開始是想做makecode arcade這個計畫的硬體掌機
![](https://hackmd.io/_uploads/H1EiH1mLh.png)

---

# makecode arcade是微軟旗下的一個網站
![](https://hackmd.io/_uploads/Hy3LIJQLh.png)

---

# 使用積木程式設計小遊戲
![](https://hackmd.io/_uploads/SyqFLy7U2.png)

---

# 並且可以將程式放在特定單晶片系統上運作成為掌上型遊戲機
![](https://hackmd.io/_uploads/rJ8kD1782.png)

---

# 後來在伴伴學社群的各位大大討論中決定用raspi pico
![](https://hackmd.io/_uploads/SyyNvkXL2.jpg)


---

# 經歷了三次硬體變更設計
![](https://hackmd.io/_uploads/BkZhdyXI2.png =x200)![](
https://hackmd.io/_uploads/HycvDkmIn.png =x200)![](https://hackmd.io/_uploads/By4siyQUh.png =x200)



---

# 第一次使用小螢幕(未發表)
![](https://hackmd.io/_uploads/BkZhdyXI2.png =x200)

---

# 第二次把小螢幕180度翻轉，並加上SD Card（第一代）
![](
https://hackmd.io/_uploads/HycvDkmIn.png =x200)

---

# 第三次把螢幕放大（2.8")，並加上其他遊戲平台
紅白機模擬器![](https://hackmd.io/_uploads/By4siyQUh.png =x200)毀滅戰士移植

---

# 在makecode arcade部分只要遵守硬體規範就可以


---

# 在紅白機模擬器部分大部分使用這一位的程式碼
## https://github.com/fhoedemakers/pico-infonesPlus
然後我把LCD顯示加進去

---

# 紅白機模擬器的原理大綱
* 畫面由一次一條的掃描線構成
* 因此不需要圖框緩衝區
* 但時序必須緊貼
* 因此LCD的速度調到最大
* 畫面更新率大約是50Hz


---

# 在DOOM的部分大部分使用這一位的程式碼
## https://kilograham.github.io/rp2040-doom/
然後我把我在紅白機模擬器那邊寫好的副程式搬來

---

# DOOM的原理
* 有圖框緩衝區
* 作者大幅度改寫源碼成為掃描線輸出
* 我把紅白機那邊的成果複製過來
* 搭啦！DOOM就會動了

---

# 心得
* 過程之中花最多時間是讀懂源碼
* 然後遮掉不要的程式
* 插入我們的程式
* 這兩個專案都是利用pico的scanline
* 舊的技術也有新的應用

---

# 最終我的開源檔案在此
## https://github.com/pondahai/rp2040-ili9341-infones
## https://github.com/pondahai/rp2040-doom-ili9341

---

# 祝你好玩

###### tags: `專題` `遊戲掌機` 
