看到那麼多的懷舊主機最近幾年重出市面,不僅標榜可以對應所有當時各家主機的卡帶軟體與操作手把,連早已被淘汰的紅白機都在最近重新推出了全新的軟體。雖然說使用模擬器就可以在一張記憶卡內儲存千百款以上的遊戲,但實際觸摸卡帶的表面、主機的按鈕紋理時總是有一種青春回憶走馬燈的光景油然而生。

其次,隨著一些個人用電腦機版的微型與廉價化,自己製作攜帶主機也成為可能,例如海外許多開發者使用的「樹莓派(Raspberry Pi)」機版就是一例。樹莓派是一款基於 Linux 系統的單板機電腦,由英國的樹莓派基金會所開發,其目的是以低價硬體及自由軟體為口號,刺激學校的基本電腦科學教育,讓學生有機會可以練習相關的軟硬體設計,尤其在非第一世界國家更是電腦教育之主力。

樹莓派機版的體積非常小,大概只有一張信用卡的大小,採用開源的 Linux 系統如 Debian、ArchLinux,並內建 Iceweasel、KOffice 等免費開源軟體, 硬體方面採用 ARM 架構 處理器,記憶體從 256-512 MB 記憶體,SD記憶卡作為儲存媒介,並支援 USB、 HDMI 和 RCA 端子之輸出。,新版的樹莓派還支援了 Wifi 無線網路和藍芽通訊功能,基本上就是一台微型電腦,一般不用跑太多 3D 的遊戲也都可以運算處理。

也因此這篇文章將分享我們以樹莓派機版、任天堂 Game Boy 外殼來自己製作的隨身攜帶掌機

■ 準備材料

. Nintendo GameBoy DMG-01外殼

. Raspberry Pi 2

. micro SD (8G以上)

. 3.5 吋 LCD 螢幕(AV端子輸入)

. PAM8403 數位功率放大模組

. 1W 8Ω 小喇叭

. 85mm*85mm電木萬用板(洞洞板)

. 行動電源

. 3.5mm 耳機轉 RCA 接頭

. 5V->12V 升壓模組

. 杜邦線、熱溶膠、導電膠帶、絕緣膠帶、電鑽、鋸子、烙鐵焊錫

主機外殼方面我們採用的是壞掉的任天堂的 GameBoy 。如果你的主機依舊可以使用的話請好好保存,另外您也可以在網路上或是秋葉原等地找到其他主機的原版外殼來加以使用。

■ 外殼與螢幕組裝

本次組裝是使用的是 Raspberry Pi2搭 配模擬器整合平台 RetroPie,建議可以在組裝前先花一段時間在大螢幕上安裝設定試玩,確認執行無誤並把整個系統摸熟後再開始,我最初是拿一個超級任天堂 SFC 卡匣挖空作為暫時的外殼(如下圖所示)

到 RetroPie 網站下載最新的映像檔後用 Win32DiskImager 把系統寫到記憶卡中。流程可以參考〈這篇〉,關於 RetroPie 的詳細設定可以參考其他網路資源,基本上應該不會有什麼問題才對。

使用一般市售的 3.5 吋的 LCD 倒車螢幕,上面有兩組 AV 端子可以接收訊號,樹莓派端的影像訊號則是由 3.5mm 孔直接輸出。這邊要注意的是,由於 LCD 的電源是吃 12V ,與一般常見使用的 5V 電量不同,所以需要另外使用一個升壓模組來供電,不過國外討論區有研究出繞過螢幕降壓電路,直接使用 5V 供電的方式,如果嫌使用升壓模組麻煩的話,不妨可以參考〈這篇〉。

需要注意的是,這些市售的車用 3.5 吋螢幕外型雖然一樣,但是內部的電路板卻有很多種,有些寬度甚至超過 GameBoy 本身的外殼,所以必須拆開後才能知道抽到哪張電路板,或者在購買時要先注意到相關的尺寸規格。剛開始是使用一個簡單的升壓模組調至 12V 後用固定。後來很幸運在網路上看到其他朋友使用和我一樣規格的螢幕,因此找到了 5V 接點,因此節省了一些內部空間。

螢幕接腳配置,由於是攜帶主機,故要黏緊。

由於 Gameboy 主機的原始螢幕大小是 2.45 吋,所以許多製作案例都會把 Gameboy 的螢幕內框切開擴大,剛好可以搭配底下的 3.5 吋螢幕,但是我這邊是使用另一種方式配合原本的 2.45 吋螢幕框用軟體設定來縮小顯示範圍,一方面可以維持 GameBoy 原本的外觀,也維持了原始的懷舊風氣,而透明框也可以保護底下的螢幕。

畫面信號的傳輸是由樹莓派上的耳機孔透過「3.5mm 耳機轉 RCA 接頭」直接連到螢幕的顯示接腳。不過雖然已經買了比較小的 L 型的接頭但組裝時空間依舊塞不下,所以最後只好直從樹莓派上拉線接到螢幕和喇叭上。

另外要注意一般市售的「3.5mm 耳機轉 RCA 接頭」規格沒有統一,主要差異是在接頭的第三跟第四段影像接地位置有兩種版本,買錯的話也無須緊張,可以剪開後把影像跟接地重新分配。

■ 縮小螢幕尺寸

前面已經提到為了維持原來 Gameoy 的主機外觀和懷舊氣氛,所以我們需要將 3.5 吋的車用 LCD 顯示畫面縮小。直接在 config.txt 裡面設定調整螢幕上下左右顯示範圍便可,解析度則根據 LCD 而定,真的想要懷舊的話,也可以設定成 Gameboy 的原始解析度 160*144 。

/boot/config.txt

disable_overscan=0

overscan_left=119

overscan_right=60

overscan_top=21

overscan_bottom=7

framebuffer_width=320

framebuffer_height=240

其次,如果遇到遊戲內的選單文字太小無法辨識閱讀時,直接到下列路徑修改 /etc/emulationstation/themes/ 裡面對應主機路徑的 theme.xml。找到底下的第 69 行跟 110 行把 “0.03” 改成 “0.06” 字體大小即可,詳細可以參考〈這篇〉,

可以看到把螢幕尺寸縮小來遊玩《毀滅戰士》。下圖則是把文字放大一倍方便閱讀。

■ 聲音與按鍵

把樹莓派上 3.5mm 的音源連接至 PAM8403 上,並將聲音放大到喇叭上,由於 PAM8403 本身需要 5V 電源來驅動,如果有需要還可以在中間加上耳機座跟可變電阻來調整音量,也可以使用軟體快速鍵調整音量。

按鍵的部分是使用 Gameboy 的「上下左右」十字鈕、開始與選擇鍵、A 鈕與 B 鈕之外,還預留了線路未來來當作 X、Y 和 L、R 鈕,這樣就可以遊玩更多平台遊戲了。按鍵使用樹莓派上的 40 針 GPIO 接口來控制,也可以使用原本的 USB 孔來外接手把鍵盤。

[4][6] 腳是提供樹莓派的 5V 電源,[7]~[26]是用來對應到鍵盤按鍵和接地。

使用導電膠帶來設計按鍵線路,另外順便做了插座方便替換維修以及整合所有的 5V 電源。

GPIO 的驅動是使用 Retrogame ,關於Program 詳細可參考〈這篇〉

安裝流程:

git clone https://github.com/adafruit/Adafruit-Retrogame.git

cd Adafruit-Retrogame

nano retrogame.c

取代下列配置

—————————————————-

{ 24, KEY_LEFT }, // Left

{ 10, KEY_UP }, // UP

{ 22, KEY_RIGHT }, // Right

{ 23, KEY_DOWN }, // Down

{ 27, KEY_RIGHTSHIFT }, // Select

{ 18, KEY_ENTER }, // Start

{ 17, KEY_S }, // B

{ 4, KEY_D }, // A

{ 9, KEY_Q }, // L

{ 25, KEY_A }, // X

{ 11, KEY_E }, // R

{ 8, KEY_W }, // Y

{ 7, KEY_ESC }, // ESC

—————————————————–

make retrogame

sudo nano /etc/udev/rules.d/10-retrogame.rules

————————————————————————

SUBSYSTEM==”input”, ATTRS{name}==”retrogame”, ENV{ID_INPUT_KEYBOARD}=”1″

————————————————————————

測試正常後設定啟動自動執行:

sudo nano /etc/rc.local

/home/pi/Adafruit-Retrogame/retrogame &

sudo reboot

■ 電源控制

整台主機總共有樹莓派機版、螢幕、聲音這三個部分需要使用共用 5V 電源。原本是計畫在內部放一般的鹼性電池,最後決定直接使用外接電源。主要是擔心機殼內溫度過高導致無法運行,再來就是原本準備的電池裝上去後續航力大概只有 1~2 小時。

■ 測試與組裝

最後就是開始進行測試。聲音和畫面是否可以出來?按鍵的操作是否有延遲等等。如果都沒有問題,那就開始把所有的零件放進機殼之中吧。在切割主機外殼時一定要注意安全,另外由於只機內部空間狹小,要注意把可能因為擠壓造成短路的地方用絕緣膠帶隔離。

■ 完成屬於自己的攜帶主機

接上鍵盤滑鼠,透過 Dosbox 玩《魔獸爭霸 II 》也是 OK 的,大家去看魔獸電影了嗎?XD

當然也可以使用 Gameboy各種正式或山寨的周邊,不管是放大鏡或是小燈泡都行!

如果沒有打算把樹莓派的 RJ45 根 USB 拆掉的話空間其實很勉強,還是比較建議使用 Pi Zero 內部配置會自由很多。當然如果選擇的是 Game Gear 等空間更大的主機或許會較方便。螢幕的部分關於升壓模組和 RCA 轉接頭最後都沒有裝到機器裡,只有在剛開始測試配線時有用到。另外按鍵控制板上的導電膠帶是用一條直線的空隙來短路,但是實際操作後發現並不是很靈敏,應該是要改成像一般手把電路板上下交錯的方式來增加接觸面積,或是直接用專門的 PCB 板較為理想。

最後,在這個滿街都是智慧手機,隨身五吋甚至大平板的時代,使用這個只有 2.45 吋的小螢幕遊玩遊戲實在是充滿懷舊的氣氛和滿足感。當然更深刻感受到時代的進步和螢幕大小帶來的聲光效果差距。坦白地說,噱頭大於實際的可玩性,大部分的時間我還是會選擇透過 HDMI 端子輸出到螢幕上遊玩,不過可以在 Gameboy 上面執行各種電腦遊戲或是 SFC 甚至 PS 的遊戲,

總是帶來一種難以言喻的成就感,而且自己組裝主機時的組合樂趣,也令人十分回味。

本文作者:Kay Li

增補修正:RainReader

Source

原始出處 KMavi |懷念的掌上新玩具:GB派 GameBoyPi

https://retropie.org.uk

https://github.com/retropie/retropie-setup/wiki/First-Installation

https://github.com/Aloshi/EmulationStation/blob/master/THEMES.md

https://superpiboy.wordpress.com/

http://www.sudomod.com/

http://www.instructables.com/id/RaspiBoy-Raspberry-Pi-Gameboy-SuperPiBoy-A-Raspber/

http://www.instructables.com/id/Gameboy-LCDRaspi-Upgrade/

標籤:DIY、PC、任天堂、懷舊、日本、樹莓派

原始來源:U-ACG 公開文章