








어렸을 때 어느 해 크리스마스에 Nintendo Game & Watch를 선물로 받을 수 있어서 정말 운이 좋았습니다. Donkey Kong Jr(DK-JR)였고, 그 게임을 완전히 익힐 때까지 가지고 놀았습니다!
2026년이 된 지금도 여전히 빈티지 휴대용 게임 컬렉션에 보관하고 있습니다. 하지만 기기들이 점점 낡기 시작했고, 플레이하다가 고장 낼까 봐 걱정되어 직접 만들어 보기로 했습니다.
조금 조사하다가 제가 찾던 것의 기본 구성을 갖춘 GitHub Repo를 우연히 발견했습니다. 하지만 DK-JR는 포함되어 있지 않았기 때문에, 직접 자세히 살펴보고 추가해야 했습니다.
제작하는 동안 Mario Bros, Balloon Fight 등 제가 좋아하는 G & W 게임을 몇 가지 더 플랫폼에 추가하기로 했습니다(총 4개). 이 게임들은 모두 버튼 배치가 같아서 쉽게 포함할 수 있었습니다.
이번 제작은 제가 지금까지 해 본 다른 제작보다 조금 더 까다롭습니다. ESP32-S3에 플래시해야 하는 ROM의 Bin 파일을 제공할 수 없는 이유는 저작권이 있기 때문입니다. 따라서 직접 파일을 구해야 합니다(여기서는 인터넷이 큰 도움이 됩니다. Internet Archive도 확인해 보세요…). 그런 다음 아트워크 등과 함께 bin 파일을 만들어야 합니다. 제 GitHub Repo에 'Claude Guide'라는 파일을 올려 두었습니다. 이 파일을 Repo 링크와 함께 Claude에 추가하고 필요한 파일을 만드는 데 도움을 요청하세요. 그러면 이후 과정은 간단합니다.









이런 프로젝트에서는 보통 그렇듯이, 다운로드할 수 있는 PDF에 부품 목록을 정리해 두었습니다. 이 방식이 읽고 사용하기 더 편하다고 생각합니다. Ali Express에서 구매한 모든 부품의 링크도 포함했습니다.
이 단계에서 PDF를 다운로드하고 필요한 부품을 주문하세요.
다음 단계에서 PCB와 전면 및 후면 패널을 제작하는 방법을 확인하세요.

사람마다 지식 수준이 다르므로, 이런 제작을 소개할 때는 기본적인 납땜 기술만 있는 사람이라도 완성할 수 있도록 충분한 정보를 제공하고 싶습니다. 여기에는 직접 PCB를 출력하는 방법에 대한 안내도 포함됩니다(정말 쉽습니다!).
그렇다면 가장 먼저 전면 패널과 PCB를 출력해야 합니다. 저는 이 작업을 위해 JLCPCB (제휴 관계 없음)를 사용합니다. 전면 패널은 실제로 부품이 하나도 장착되지 않은 PCB일 뿐입니다! 전면 패널 디자인은 Inkscape 라는 프로그램으로 제작하고(무료로 이용 가능), 드릴 구멍을 포함한 패널은 Fusion 360 에서 제작합니다(이 역시 무료입니다!).
단계:






제가 지금까지 만든 유사한 제작물과 이번 제작의 가장 큰 차이점은 방향 및 제어 스위치를 전면 패널에 추가했다는 것입니다! 따라서 이 스위치들을 ESP32-S3에 연결하기 위한 수 핀 헤더를 추가해야 했습니다.
단계:









다음 단계에 따라 전면 패널을 쉽게 분리할 수 있으며, 납땜을 제거할 필요도 없습니다. 특히 유지보수, 배터리 교체, 문제 해결 등에 중요합니다.
단계:
패널에 화면 추가하기









단계:



저는 보통 전자 폐기물에서 회수한 재활용 휴대폰 배터리를 사용합니다. 이번 제작에서는 오래된 카메라 배터리를 사용했는데, 두께가 얇아 잘 맞습니다. Li-Po 배터리를 사용해도 문제없습니다. 다만 PCB에서 확보한 공간(약 40mm X 40mm)에 들어가는지 확인하세요.
단계:

이 단계에서는 다음을 사용하여 미리 빌드된 펌웨어 파일을 ESP32-S3-Zero에 기록합니다: esptoolEspressif(ESP32 칩 제조사)가 제공하는 무료 명령줄 도구입니다. Windows, Mac, Linux에서 동일한 방식으로 작동하며, 아래 가이드는 Windows 명령을 사용하고 Mac/Linux용 명령도 함께 설명합니다.
이 단계에서는 Arduino IDE나 다른 소프트웨어가 필요하지 않습니다. Python과 esptool만 있으면 됩니다.
터미널을 여세요(키보드에서 Windows 키 + R). Windows에서는 명령 프롬프트를, Mac/Linux에서는 터미널을 열고 다음을 실행하세요:
정상적으로 설치되었는지 확인하세요:
버전 번호가 출력되어야 합니다(예: esptool v5.3.1). 대신 오류가 표시되면 Python이 올바르게 설치되었고 시스템 PATH에 등록되어 있는지 다시 확인하세요.
USB를 통해 ESP32-S3-Zero를 컴퓨터에 연결하세요.
Windows: 장치 관리자를 열고 "Ports (COM & LPT)"를 확장하세요. "USB Serial Device (COM4)" 또는 "Silicon Labs CP210x (COM3)"와 같은 항목을 찾은 다음 COM 번호를 적어 두세요.
Mac: 터미널을 열고 ls /dev/cu.*를 실행하세요. /dev/cu.usbserial-0001 또는 /dev/cu.SLAB_USBtoUART와 같은 항목을 찾으세요.
Linux: ls /dev/ttyUSB* 또는 ls /dev/ttyACM*을 실행하고 표시되는 장치 이름을 적어 두세요.
어떤 플랫폼에서도 아무것도 표시되지 않으면 컴퓨터에 보드의 USB-직렬 변환 칩용 드라이버가 필요할 수 있습니다. 사용 중인 보드의 판매 페이지나 문서에서 어떤 칩을 사용하는지 확인하세요(일반적으로 CP210x 또는 CH340). 그런 다음 해당 칩 이름과 "driver"를 함께 검색하여 운영 체제에 맞는 드라이버를 찾으세요.
터미널에서 다운로드한 .bin 파일 4개가 들어 있는 폴더로 cd 명령을 사용해 이동하세요. 예를 들어 Windows에서는 다음과 같습니다:
4개 파일이 모두 있는지 확인하세요:
Windows: dir *.bin Mac/Linux: ls *.bin
다음 명령을 실행하세요. Step 3에서 확인한 실제 포트에 맞게 COM4를 바꾸세요(Mac/Linux에서는 포트 경로를 사용합니다. 예: /dev/cu.usbserial-0001 또는 /dev/ttyUSB0):
도구가 칩에 연결된 다음 4개 파일을 차례로 기록하고 검증하는 과정이 표시되며, 마지막에는 다음과 같은 내용이 출력됩니다:
이 메시지가 표시되면 성공한 것입니다. 보드가 자동으로 재설정되고 새 펌웨어로 부팅됩니다.
.bin 파일 중 하나에 대해 "No such file or directory"가 표시되는 경우 — 올바른 폴더에 있지 않은 것입니다. Step 4를 다시 수행하고 플래시하기 전에 dir *.bin / ls *.bin으로 확인하세요.
"Connecting..."에서 멈추고 진행되지 않는 경우 — 일부 ESP32-S3 보드는 새 펌웨어를 받기 전에 수동으로 부트로더/다운로드 모드로 전환해야 합니다. 보드에 BOOT 및 RESET 버튼이 있다면 BOOT 버튼을 누른 상태에서 RESET을 눌렀다 놓고, BOOT 버튼을 놓은 다음 플래시 명령을 다시 실행하세요. 모든 보드에 이 과정이 필요한 것은 아닙니다. 일부 보드는 자동으로 부트로더 모드로 재설정됩니다. 하지만 일반 명령이 멈춘다면 이 방법으로 해결할 수 있습니다.
Permission denied(Mac/Linux 전용) — sudo를 사용해 명령을 실행하거나 사용자를 dialout 그룹(Linux)에 추가해야 할 수 있습니다:
그런 다음 로그아웃했다가 다시 로그인합니다.
플래싱이 완료되면 화면이 켜지고 게임 선택 메뉴가 표시됩니다. 버튼과 화면을 이미 연결해 두었다면 즉시 탐색하고 게임을 시작할 수 있습니다.





Game & Watch 휴대용 게임기 사용 방법
1: 전원 켜기
전원 스위치를 ON 위치로 밉니다. 잠시 후 화면에 게임 선택 메뉴가 나타납니다.
배터리를 충전하려면 USB-C 케이블을 충전 포트에 연결합니다.
2: 게임 선택하기
메뉴에는 한 번에 게임 하나가 표시되며, 화면 하단에 게임 이름과 연도가 표시됩니다. 게임은 13개입니다:
다음을 누릅니다: Left 또는 Right 를 눌러 게임 목록을 스크롤합니다. 다음을 누릅니다: Jump 를 눌러 화면에 표시된 게임을 불러옵니다.
게임이 로드되면 원래의 Game & Watch와 마찬가지로 먼저 시계 화면이 표시됩니다.
4: 플레이하기
조작 방법은 게임에 따라 다릅니다.
Donkey Kong Jr., Balloon Fight, Climber 및 Super Mario Bros.
Donkey Kong Jr. 팁: 화면 상단의 열쇠를 잡으려면 오른쪽 위 가지의 왼쪽 끝까지 이동합니다. 열쇠가 자신에게 가장 가까이 흔들려 올 때까지 기다린 다음, 다음을 누릅니다: Jump + Left 를 동시에 누릅니다.
그 외 모든 게임(2버튼 게임)
이 게임들은 원래 왼쪽 버튼과 오른쪽 버튼만 사용해 플레이했습니다. 이 휴대용 게임기에서는 다음과 같이 조작합니다:
이렇게 하면 원래의 휴대용 게임기처럼 양쪽 엄지손가락 아래에 버튼이 하나씩 놓입니다.
5: Time 버튼
Time 버튼은 기능 키입니다. 단독으로 사용하거나 다른 버튼과 함께 사용하면 추가 기능을 이용할 수 있습니다.
조작 기능
Time을 누르기 게임을 일시 정지하거나 다시 시작합니다
Time + Left 볼륨 낮추기
Time + Right 볼륨 높이기
Time + Down을 2초간 누르기 게임 메뉴로 돌아갑니다
Time + Up을 2초간 누르기(게임 중) 게임 오버 후 계속합니다
Time + Up을 2초간 누르기(메뉴에서) 컬러 모드를 켜거나 끕니다
6: 일시 정지
게임 중에 Time 을 빠르게 누르세요. 화면이 멈추고 소리가 중지됩니다. Time 을 다시 누르면 게임을 계속할 수 있습니다.
게임이 일시 정지된 상태에서도 다음을 길게 눌러 메뉴로 돌아갈 수 있습니다: Time + Down 을 2초간 누르세요.
7: 볼륨 조절
다음 버튼을 누른 상태에서 Time 을 누르고, Right 를 눌러 볼륨을 높이거나 Left 를 눌러 낮추세요. 메뉴와 게임 중 모두 사용할 수 있습니다.
8: 게임 오버 후 계속하기
마지막 목숨을 잃었나요? 포기하지 마세요. 게임이 끝난 후 약 10초 이내에 Time + Up 을 2초간 누르세요. 게임이 몇 초 전, 아직 목숨이 남아 있던 시점으로 대략 되돌아갑니다.
점수도 해당 시점의 점수로 돌아갑니다.
9: 컬러 모드(이스터 에그)
원래 Game & Watch 화면은 회색 바탕에 검은색만 표시했지만, 이 휴대용 기기에는 숨겨진 컬러 모드가 있습니다.
10: 메뉴로 돌아가기
게임을 전환하려면 플레이 중에 다음을 길게 누르세요: Time + Down 을 2초간 누르세요. 게임 선택 메뉴로 돌아갑니다.
원문: https://www.instructables.com/Thingtendo-a-Game-Watch-Clone-Using-ESP32-S3/