.
.
만든지는 좀 오래된것 같은데 다른일을 하느라 정신이 없어서 이제야 올리네요.
.
전에도 '추억의게임' 게시판에 RPi 관련 콘솔을 만들어서 글을 올렸던것 같은데
찾아보니 그것도 벌써 한~~참전 이야기였군요.
.
고민고민 하다가 이번엔 자작/없만겔에 올립니다.
.
일단 플레이 (구동) 영상부터.
.
.
버튼이 모자른 게임들이라 셀렉트, 스타트 버튼까지 꼼꼼하게 재활용해서 맵핑했습니다.
한손으로 촬영을 하며 플레이를 할 수가 없어서
그냥 동작 한다는 느낌으로만 촬영 했어요.
.
굳이 용어를 쓰자면 .. '리버스 에뮬레이팅'
에뮬레이터 처럼 가상의 '게임기'를 만들어 게임을 실행하는 것이 아니고..
가상의 '게임 롬'을 에뮬레이팅 하는 기술이라 보시면 됩니다.
.
만드는 과정은 지나치게 복잡한데요
기본적으로 PiPU 프로젝트 ( https://github.com/rasteri/PiPU ) 에서 영감을 받아 작업했습니다.
.
북미판 NES 와는 다르게,
패미컴은 카드리지에서 사운드관련 프로세싱을 추가해서 본체로 넣어줄 수 있는 설계라서
원작 사운드를 출력할 수 있게 변경하였습니다.
물론.. 카트리지 크기도 다르기 때문에 손이 훨씬 많이 갔네요.
.
첫 준비물이 이 '삼국지' 카트리지 였어요.
.
.
이때 당시 패미컴은 카트리지 규격이 일정하지 않은데요..
1. 그중에서 적당히 크기가 크고
2. 보관상태가 좋은 (코에이 게임들은 하드케이스라 보관이 잘되어 있어요)
위 조건으로 찾다보니 삼국지 카트리지를 골랐던것 같습니다.
.
하지만
.
.
보시는 것 처럼
큰 카트리지라고 해도 작은 컴퓨터와 USB 개발보드하나를 추가로 넣기에는
무리가 있습니다.
.
.
일단
.
게임은 저 컴퓨터가 (RPi4) 실행하게 될거구요
화면출력을 패미컴에 전달하고, 컨트롤러 입력을 컴퓨터에 전달하는 역할을
FX2LP 보드가 담당하게 됩니다.
.
.
여기서 잠깐
.
좀더 소프트웨어에 관한 설명을 드리자면..
게임화면을 커스텀 개조된 SDL 라이브러리로 출력하고,
프레임버퍼 정보를 USB 장비로 전달하는 데몬이 돌아가게됩니다.
이 데몬이 패미컴에 알맞게 팔레트 (컬러 프로필) 를 동적으로 변경하죠.
그러면 패미컴은 CHR 롬 정보를 단순히 읽어오지만,
화면에는 게임화면이 출력되게 됩니다.
.
.
.
네.
이런 이야기는 적으면 복잡하고
안적으면 성의없어 보이고..
그러니 알아서 잘 읽어주세요.
.
.
하여튼
.
크기의 문제가 있습니다.
그래서 삼국지 카트리지 대신 쉘과 개발 보드를 따로 구매해서 진행했습니다.
.
.
이렇게 하면
내부 공간을 넉넉하게 확보 할 수 있습니다.
물론 그래도 아직 많이 부족하죠.
.
같이 보이는 롬은 AT28C256 입니다.
(32KB 짜리 EEPROM 이란 소리)
.
공간을 더 확보 하기 위해
디솔더링을 진행 합니다.
부품중 불필요한 것들을 모두 걷어내는 작업입니다.
.
그래야 넣을 수 있어요
.
윗줄의 부품이 기존 부품이고
아랫줄은 디솔더링을 마친 부품입니다.
.
.
가장 부피가 큰 랜포트, USB 포트 모두 없앴구요
헤더 핀도 모두 없앴습니다.
스위치나 이어폰 단자도 없앴고...
스위치도 모두 들어내고 강재 활성화 시켰어요.
.
그랬더니
.
.
이렇게나 얇아졌습니다.
.
이제 카트리지 안에 넣을 수 있게 되었어요.
.
차이가 느껴지시나요.
.
.
일단 커스텀 롬을 굽습니다.
.
저 롬에는 패미컴의 입출력을 처리하여 컴퓨터로 알려주는 역할을 할 로직이 들어가 있어요.
패미컴의 CPU 인 6502 어셈블리로 만들어져있습니다.
.
보통 프로그레밍은 맥으로 작업을 하는데
다행히 롬 라이터도 맥에서 동작하네요.
.
.
FX2LP 에 커스텀 펌웨어를 넣고 있어요.
그러면 이제 이 보드가 컴퓨터와 패미컴의 중간 역할을 하게됩니다.
속도도 빨라서 입력딜레이는 거의 없습니다.
.
경우에 따라 핀 위치가 다르기도 하고
디솔더링시 인두의 온도가 조금만 높아도 보드가 상해요.
보드의 품질이 많이 떨어집니다.
.
그리고
,.
이제는 쓸고 없어진 삼국지 카트리지는
개발용 디버깅 장비로 만들어서
각 부품들 테스트 할 때에 사용중입니다.
.
.
삼국지 팬에게는 죄송 합니다..
복잡한 개발에는 디버깅 장비가 꼭 필요해서요.
.
디버깅 장비는 이렇게 돌아 갑니다.
.
.
삼국지 카트리지가 아니었으면 다른것도 못만들었을꺼에요.
(변명 맞습니다)
.
.
PCB 에 앞서 만들었던 PRM 롬을 올렸습니다.
그리고.. 가장 보드의 구조가 단순하고 크기가 작은 NROM 규격을 사용했어요.
(그래서 핀배열 맞추는 수공작업이 조금 더 들어가긴 했지만)
.
사진상에 보이는 하단의 46번 핀이 NES 에는 없고 패미컴에만 있는 사운드 입력 입니다.
코나미의 악마성 같은 카트리지는 그래서 화려한 사운드를 출력할 수 있게 해주죠.
북미판에서는 사운드 채널 부족으로 맥빠지는 소리가 나와요.
.
가조립을 해보겠습니다.
특별히 잘 보이도록 투명할 쉘
.
.
잘 들어가죠
사실 저 위치 잡으려고 고생한 시간이 몇달은 될꺼에요.
( 제가 직업이 없는 사람이 아니기에 )
.
이 위치대로 각 필요한 핀끼리 연결을 합니다.
.
.
컴퓨터의 전원은 패미컴에서 끌어다 쓰기 때문에
저전력으로 세팅했습니다.
CPU 도 다운클럭하고..
불필요한 LED도 모두 끄도록 해야해서
리눅스도 커스텀 빌드로 진행했네요.
.
그렇게 라벨까지 대강 만들어 붙이면.....
.
.
대강 이런 것들을 패미컴에서 돌릴 수 있게 되었습니다.
메탈슬러그 좋아하는데.. 4편부터는 정통파가 아닌 느낌이라 제외
.
..
.
철권 카트리지는 조금 특별하게...
.
카트리지 뒷편에 25mm 짜리 쿨러도 돌아갑니다.
그렇게 하지 않으면 아무리 발열 관리를 해줘도
CPU 가 온도를 견디지 못해요.
.
.
.
둠은 검은색 쉘에 작업할껄 후회되요.
색상이 있는걸 하나 꼽았다가 .. 이모양입니다.
.
.
가장 앞서서 실행되는 영상은 이미 보여드렸으니
아래는 스틸컷
.
.
.
.
패미컴이 색상과 관련된 제약사항이 많고
해상도도 256x240 이라 출력할 수 있는 게임 화면도
항상 좋지는 않아요.
.
부족한 색상은 디더링(Dithering) 으로 최대한 만들어서 출력하게 되어있구요
부족한 해상도는 어쩔수 없이 줄이고 잘라서 출력합니다.
.
.
부족한 게시물 봐주셔서 감사합니다.
.
(마지막으로 실행 영상 재탕)
.
.
.
.
.
.
* 7년전에 만들었던 자작콘솔은 이곳 LINK
.
* 흥미롭게 보셨다면 추천
(IP보기클릭)14.32.***.***
아저씨도 공대나왔어요?
(IP보기클릭)175.212.***.***
내가 뭘 본거지
(IP보기클릭)175.210.***.***
ㅇ_ㅇ) 뭐든 뚝딱뚝딱 만드시는분들 보면 다 공대나오셧더라구용 굉장히 멋지다고 생각합니다! 하던거 계속해주세요!
(IP보기클릭)211.36.***.***
음...문돌이라 무슨소린진 하나도 모르겠지만 끝내준다는건 확실히 알겠어요
(IP보기클릭)211.213.***.***
.............대단합니다.
(IP보기클릭)211.213.***.***
.............대단합니다.
(IP보기클릭)221.167.***.***
감사합니다- | 21.07.28 21:23 | |
(IP보기클릭)14.32.***.***
아저씨도 공대나왔어요?
(IP보기클릭)221.167.***.***
네 컴공과 99학번이요 | 21.07.28 21:21 | |
(IP보기클릭)175.210.***.***
buzzler
ㅇ_ㅇ) 뭐든 뚝딱뚝딱 만드시는분들 보면 다 공대나오셧더라구용 굉장히 멋지다고 생각합니다! 하던거 계속해주세요! | 21.07.29 01:06 | |
(IP보기클릭)220.125.***.***
반갑습니다. 저도 공대 99학번이에요. 근데 이게 왜 돌아가는거죠?? | 21.08.06 17:37 | |
(IP보기클릭)221.167.***.***
카트리지에 내장시킨 저 컴퓨터가 패미컴에서 읽을 수 있는 데이터 형태로 바꿔주거든요. 소프트웨어 쪽은 이곳에 적기에 적절하지 않아서 설명을 생략했습니다. | 21.08.06 17:49 | |
(IP보기클릭)76.21.***.***
ㅎㅎ 재간좋으시네요. 재밌게 잘봤습니다. 전 지금 대충 HDMI 720p입력을 받아서 패미컴 롬으로 쏴서 화면에 돌려보는걸 생각중인데, 요새 대부분의 게임 특성상 패미컴 컨트롤러로는 버튼숫자가 부족할꺼라 그냥 엑박 물려서 컨트롤러는 엑박에 그대로 쓰고 화면만 패미컴 출력 해보는걸 구상중입니다. 물론 그렇게 하면 저렇게 컴팻트한 단일팩으로는 불가능할꺼고, 롬팩 위에 HDMI 암컷단자가 있어서 거기다 꽂게 하고.. 전원은 NES에서 끌어오는걸로 충분할지.. 아니면 따로 해야할지 고민이긴 하네요. | 21.08.07 08:15 | |
(IP보기클릭)123.142.***.***
뭔 소리에요 그게.... 무서워요..;; | 21.08.07 14:06 | |
(IP보기클릭)118.34.***.***
(IP보기클릭)221.167.***.***
저도 된다는게 아직 신기방기 합니다 | 21.07.28 21:23 | |
(IP보기클릭)168.131.***.***
(IP보기클릭)221.167.***.***
투명쉘과 PCB 는 구매한 물건이에요. 비싸진 않은데 해외구매다 보니 시간이 오래 걸리네요 | 21.07.28 21:39 | |
(IP보기클릭)168.131.***.***
그렇군요 답변 감사드립니다ㅎㅎ | 21.07.28 22:06 | |
(IP보기클릭)59.5.***.***
(IP보기클릭)118.33.***.***
감사합니다- | 21.07.29 15:20 | |
(IP보기클릭)175.212.***.***
내가 뭘 본거지
(IP보기클릭)211.36.***.***
아주 오래된 게임기에서 도는 조금 오래된 게임 | 21.07.30 17:01 | |
(IP보기클릭)211.222.***.***
(IP보기클릭)211.36.***.***
감사합니다- | 21.07.30 17:08 | |
(IP보기클릭)211.36.***.***
음...문돌이라 무슨소린진 하나도 모르겠지만 끝내준다는건 확실히 알겠어요
(IP보기클릭)211.36.***.***
글재주 없는 글 읽어주셔 감사합니다 | 21.07.30 17:07 | |
(IP보기클릭)116.47.***.***
요약하자면 배보다 배꼽이 삼백배 정도 큰 경우랄까.. 게임팩 안에 작은 컴퓨터(아마 라즈베리파이)하나 더 넣어서 거기서 게임을 돌리고, 영상이랑 음향 출력만 패미컴 사양에 맞춰서 패미컴으로 보내서 출력해주는 거에요. 옛날 게임기라도 영상하고 음성은 아날로그 실시간 신호로 처리되니까 패미컴이 처리할 수 있는 규격으로 사양 낮춰 변환해서 출력해주면, 이론상 패미컴으로 야숨 같은 것도 돌릴 수 있다는 거죠. | 21.08.07 04:41 | |
(IP보기클릭)203.132.***.***
쉽게 생각하면 기생수=게임팩 인간=본체 의 느낌이려나요?! | 21.08.07 05:13 | |
(IP보기클릭)223.39.***.***
(IP보기클릭)221.167.***.***
네 맞아요. 잘 이해하셨네요. | 21.07.31 01:02 | |
(IP보기클릭)118.32.***.***
(IP보기클릭)221.167.***.***
네. 하드웨어 다루는 부분만 올렸네요. | 21.08.03 21:46 | |
(IP보기클릭)118.41.***.***
(IP보기클릭)221.167.***.***
맞아요. 특수칩이 연산을 나눠서 하는 느낌이랑 거의 같다고 보시면 됩니다. 32x 같은 경우는 메가드라이브 본체가 한번 그리고 확장보드에서 한번 덧그리는 방식도 썼었죠. | 21.08.06 17:50 | |
삭제된 댓글입니다.
(IP보기클릭)221.167.***.***
제네리아
저전력 세팅값 찾는게 티나지 않는 노력이 필요했습니다. 쿨링팬을 붙이면 또 소모전력이 늘어나서.. ㅠ | 21.08.06 17:52 | |
(IP보기클릭)1.238.***.***
(IP보기클릭)221.167.***.***
대량 제작은 어렵지만 소량이라면 가능할거 같아요. | 21.08.06 17:53 | |
삭제된 댓글입니다.
(IP보기클릭)221.167.***.***
별빛사랑
죄...죄송합니다. | 21.08.06 17:53 | |
(IP보기클릭)211.203.***.***
(IP보기클릭)221.167.***.***
할배 게임기에 도핑 주사 한방 놨다고 보시면 되요 | 21.08.06 18:04 | |
(IP보기클릭)211.36.***.***
님이 그런말씀 하심 안되죠.... | 21.08.07 01:25 | |
(IP보기클릭)116.32.***.***
(IP보기클릭)222.234.***.***
카트리지 안의 라즈베리 파이가 게임을 구동하고 카트리지를 통해서는 화면 정보만 전달하는 듯 합니다. 따라서 기기 성능에 따라 제한되는 부분은 1. 입력 해상도 2. 입력 프레임 레이트 3. 입력 색상 모드 그 외 자잘한 입력들(사운드.. 등등) 정도 겠네요. | 21.08.06 17:58 | |
(IP보기클릭)116.32.***.***
아하 그런개념이군요. 전원끌어다가 라즈베리가 연산하고 영상정보만 출력. 라즈베리가 요즘 워낙 좋아져서 사양이 저걸 못돌릴정도는 아닐텐데. 버벅이는건 왜그럴려나요. 그런데 글쓴이가 아니시네요 ㅋㅋㅋ | 21.08.06 18:00 | |
(IP보기클릭)221.167.***.***
거의- 정확하십니다 | 21.08.06 18:05 | |
(IP보기클릭)221.167.***.***
저전력 세팅하다 cpu 클럭을 너무 낮춰서 그래요. 아답터를 3A 짜리로 써도.. 패미컴 보드에서 전류를 넉넉하게 공급하진 않거든요. | 21.08.06 18:07 | |
(IP보기클릭)116.32.***.***
외부전원을 추가로 연결하거나 배터리를 내장할경우 원할하게 구동 가능한건가요 ? 부드럽게 돌아가는거 보고싶습니다 .ㅋ | 21.08.06 18:14 | |
(IP보기클릭)221.167.***.***
글 중간에도 추가했지만.. https://youtu.be/76aOSC-QhQ8 디버깅 장비 (삼국지) 로 돌리는 영상은 성능 저하 없이 돌리고 있습니다. | 21.08.06 19:21 | |
(IP보기클릭)116.32.***.***
중간에도 있었네요 하단에 잇는것만 봤네요 ㅋㅋ 멋집니다. | 21.08.10 11:31 | |
(IP보기클릭)42.25.***.***
(IP보기클릭)42.25.***.***
아 .. NROM 기판에 연결된 FX2LP 기판이 캡쳐보드 역할을 해서 라즈베리에서 실행한 게임을 패미컴에 뿌려주는 거 군요. 게임들을 보니 파이 제로에서 돌리기엔 버거운 게임들도 있어서 ... 파이4를 선택하셨나보네요. | 21.08.06 18:01 | |
(IP보기클릭)221.167.***.***
맞습니다. 제로도 연결해봤지만.. 원활하게 돌릴 수 있는 게임이 몇개 없어요. 대신 일반 패미컴 카트리지로도 작업이 가능해지긴 합니다. 전성비 좋은 파이 제로가 새로 나온다면.. 그때를 기약하려구요. | 21.08.06 18:08 | |
(IP보기클릭)42.25.***.***
화면은 너무 원본을 구현하기 위해 디더링 하면 오히려 더 지저분해지지 않나요. 아예 모자이크로 보일 정도까지 색과 디테일을 깎아버리는 방향으로 화면처리가 가능하면 더 맛이 살아나지 않을까 싶네요. 라즈베리에서 출력되는 포맷은 어떻게 되나요?? 해상도/컬러가 높은 느낌인데 라즈베리에서 출력되는 단계에서 아예 256*240 해상도에 64컬러나 256컬러로 제한을 팍 걸어버리면 일종의 로우패스필터가 걸린 느낌으로 화면이 플랫해지지 않을지요? | 21.08.06 18:32 | |
(IP보기클릭)221.167.***.***
음. 일단 저도 많은 부분 공감을 해서 아직도 계속 이런 저런 시도를 하고 있습니다. 패미컴의 컬러 제약사항이 생각보다 심한데요 (https://megacatstudios.com/blogs/retro-development/creating-nes-graphics) 요약하자면... 사용할 수 있는 색상은 54개지만,. 16x16 짜리 타일 영역 안에서 사용할 수 있는 색상은 3개로 제한되고, 이를 팔레트라고 하죠. 팔레트는 총 8개 까지 가능하지만, 지금 제가 사용하는 방법은 그중 4개밖에 사용을 못합니다. (배경 팔렛트만 쓰기때문에) 그래서 제가 사용할 수 있는 색상은 한번에 13색 이상 사용을 못합니다.. 극도로 컬러 기근에 시달리고 있어요;; 물론 이 13색을 16x16 타일 컬러의 제한까지 최적화 하면 지금보단 훨씬 좋은 화면을 만들 수가 있는데요 이걸 동적으로 매 프레임마다 처리하기에는 라즈베리파이의 남아있는 여력이 없는 상태입니다. 말씀해주신 방향으로도 계속 개선을 해보는 중이라.. 이 글을 올리는 시점보단 화질이 좀 더 나아졌어요. 디더링은.. LCD 로 보면 매우 지저분 한데요, CRT 로 보면 꽤 괜찮더라구요. 그래서 일단 유지하고 있습니다 : ) | 21.08.06 19:31 | |
(IP보기클릭)112.157.***.***
네. 말씀하신 것처럼 제약이 심해서, 저렇게 복잡한 화면이나 색을 보여주는건 더 힘들거라 생각했는데, 오히려 중간처리 해주는게 더 복잡해지는군요... | 21.08.06 19:38 | |
(IP보기클릭)106.244.***.***
(IP보기클릭)221.167.***.***
감사합니다- | 21.08.06 18:14 | |
(IP보기클릭)125.180.***.***
(IP보기클릭)221.167.***.***
자작 카트리지요 | 21.08.06 22:14 | |
(IP보기클릭)116.120.***.***
(IP보기클릭)221.167.***.***
네. 패미컴에서 패미컴 패드로 돌리는 것 맞습니다 | 21.08.06 21:10 | |
(IP보기클릭)116.120.***.***
대단하시네요 둠돌리기는 어디까지 되는 것인가... | 21.08.06 21:16 | |
삭제된 댓글입니다.
(IP보기클릭)221.167.***.***
lostingenesis
좋은 장비들 가지고 계시네요. 잘 동작하는 개발킷 소장한 분이 흔치 않은데요. | 21.08.06 22:02 | |
(IP보기클릭)113.30.***.***
(IP보기클릭)113.30.***.***
옛날에는 아케이드 게임의 가정용 완벽이식이 불가능해서 프레임삭제는 기본에 아예 게임성 자체가 바뀌어 출시되는 경우가 대부분이었는데 약 40년전에 이런 기술이 가능했다면 화면은 구리구리할지언정 게임성만은 아케이드 그대로 유지될 수 있었겠죠? | 21.08.06 18:42 | |
(IP보기클릭)58.237.***.***
(IP보기클릭)221.167.***.***
만드는 법과 관련된 자세한 유튭 영상도 준비중이긴 합니다. 언제 완성될지는 ...... | 21.08.06 22:03 | |
(IP보기클릭)223.38.***.***
(IP보기클릭)211.203.***.***
(IP보기클릭)221.167.***.***
답변드렸습니다~ | 21.08.06 20:39 | |
(IP보기클릭)218.54.***.***
(IP보기클릭)221.167.***.***
저는... 프로그래밍이 전공이고.. 납땜질은 카트리지 만들면서 배웠어요 | 21.08.06 22:12 | |
(IP보기클릭)211.47.***.***
(IP보기클릭)221.167.***.***
공대 만세 | 21.08.06 22:12 | |
(IP보기클릭)112.169.***.***
(IP보기클릭)221.167.***.***
마술요. 불가능한 일을 보여주고 속임수는 감추는. | 21.08.07 01:29 | |
(IP보기클릭)183.103.***.***
(IP보기클릭)221.167.***.***
맞습니다. 네트워크는 없지만.. 개념적으로는 스트리밍 게임 서비스와 유사합니다. | 21.08.06 22:19 | |
(IP보기클릭)175.112.***.***
(IP보기클릭)211.251.***.***
(IP보기클릭)221.167.***.***
저도 많이 당했어요. 당시에는 당했다는 느낌보단.. 이거라도 즐겨보자 라는 느낌이었죠. | 21.08.06 22:20 | |
(IP보기클릭)1.252.***.***
(IP보기클릭)221.167.***.***
CPU 는 컨트롤러 입력 처리를, PPU 는 화면 출력을 해주는 장치로 쓰는거죱 | 21.08.06 22:21 | |
(IP보기클릭)175.223.***.***
(IP보기클릭)221.167.***.***
꿈은 이루어진다 | 21.08.06 22:21 | |
(IP보기클릭)49.174.***.***
(IP보기클릭)221.167.***.***
감사합니다- | 21.08.06 22:47 | |
(IP보기클릭)39.125.***.***
(IP보기클릭)59.152.***.***
(IP보기클릭)221.167.***.***
저도 패미컴용 스파3 의 피해자 중 한명요. | 21.08.07 01:18 | |
(IP보기클릭)211.246.***.***
그나마 패미컴용 스파3는 꽤 잘 만든 게임이죠 ㅎㅎ | 21.08.08 16:36 | |
(IP보기클릭)59.5.***.***
(IP보기클릭)221.167.***.***
감사합니다 | 21.08.07 01:18 | |
(IP보기클릭)222.109.***.***
(IP보기클릭)221.167.***.***
네. 주객전도 | 21.08.07 01:20 | |
(IP보기클릭)118.235.***.***
(IP보기클릭)221.167.***.***
서울특별시 송파구 송파대로 45- ........ | 21.08.07 01:19 | |
(IP보기클릭)220.118.***.***
(IP보기클릭)221.167.***.***
맞기도 하고 아니기도 한.. | 21.08.07 01:18 | |
(IP보기클릭)112.214.***.***
왜 이짤이 없어.....T-T
(IP보기클릭)110.9.***.***
(IP보기클릭)221.167.***.***
제가 롬만 배포하지 않으면 카트리지 제작은 가능하죠. 단지.. A/S 하랴 C/S 하랴.. 스트래스 많이 받을꺼에요. | 21.08.07 01:31 | |
(IP보기클릭)121.153.***.***
왠지 중국에서 조만간 카피품을 만들거 같은 예감이... 드네요? | 21.08.07 09:58 | |
(IP보기클릭)36.38.***.***