2026/08/01

[Korean] 오픈소스 B650 칩셋 카드 사용기 WisdPi PROM21

최근 WisdPi에서 AMD AM5소켓보드용 B650칩셋을 실장한 PROM21 확장카드를 입수하였다.

미리 언급하자면, 이 확장카드는 굉장히 마니악, niche한 제품이므로 용도를 잘 생각한 후 구매를 결정하기 바란다.



이 장치는 AMD B650 사우스브릿지를 PCIe 애드온 카드 형태로 외부화한 오픈소스를 구현한 제품이다. 즉, B650보드가 아닌 다른 메인보드에서 CPU와 사우스브릿지를 PCIe 4.0 x4 링크 하나로 호스트 시스템에 붙여버린 구조다.

이 글에서는 해당 카드의 아키텍처적 개요, PCIe 트리구조, 호환성 문제해결법, 성능, 그리고 왜 이런 물건을 사게되었는지까지의 과정과 장단점 내용을 담는다.


1. 아키텍처 개요 :  PCIe switch + USB + SATA + NVMe를 하나의 칩셋이 제공

일반적인 메인보드 칩셋과 기능은 완전히 동일하다. 단, BIOS레벨 RAID 기능은 제한적 환경에서만 쓸 수 있다.
  • PCIe 4.0 x4 업/다운링크
  • USB 3.2 gen2 10Gbps ×4
  • USB 3.2 gen2x2 20Gbps ×1
  • USB 2.0 480Mbps ×6
  • SATA AHCI 4port or Oculink(U.2) 케이블 선택
  • 칩셋 RAID는 B650/X670/X870계열 메인보드에서만 UEFI펌웨어 메뉴가 노출 ※OS부팅 후 소프트웨어 RAID는 정상 동작

사실 AMD 건 인텔이건 칩셋은 사실 PCIe 스위치 + USB/SATA 컨트롤러 집합체다. 인텔은 자체적으로 설계하여 PCIe와 거의 같으면서도 다른 전용 프로토콜 DMI로 CPU와 연결되어 있을 뿐 역할은 같다. AMD의 경우, Asmedia에 설계외주로 발주하여 CPU의 IOdie와 통신을 전용 프로토콜이 아닌 일반적인 PCIe장치처럼 통신하게 된다. 따라서 B650칩셋이 AMD이외 시스템이건, 심지어 X86이 아닌 Arm시스템 (Mac, Raspberry Pi등)에도 드라이버 없이 잘 붙는다.

일반 컨슈머 시스템에는 고생없이 PCIe슬롯에 꽂아서 링크 트레이닝만 성공하면 동작한다. 하지만 시스템에 따라서는 이 링크 트레이닝이 잘 안되는 경우가 있을 수 있다.(내가 그랬다)

칩셋은 OS 입장에서 표준 USB 컨트롤러, 표준 AHCI, 표준 PCIe Root Port로 보이기에 각 OS표준 드라이버가 있다면 별도 설치하지 않아도 동작하며, OS는 “칩셋이 PCIe로 연결되었다”는 사실을 모르고 그저 새로운 Root Complex가 하나 더 생긴 것으로 인식한다.   


2. PCIe 트리 구조

SP3 또는 SP5 기반 EPYC은 원래 칩셋이 존재하지 않는 SoC 구조다. 칩셋이 없는 구조는 AMD 서버CPU 뿐만 아니라 AMD 또는 Intel 양사가 CPU 패키지 안에 SiP 구조 또는 완전한 원칩SoC로 통합했기에 딱히 신기한 구조는 아니다. 아직 CPU와 칩셋을 분리해 놓은 데스크탑용 CPU도 고전적인 순수CPU만 가지고 있는 것이 아니고, 기능이 여럿 통합된 SoC구조라서 내부에는 USB·SATA·메모리 컨트롤러를 포함해서 확장I/O용 PCIe Root Complex가 CPU 내부에 존재한다. 이런 점은 intel, AMD, Zhaoxin이건 다 똑같다.

CPU‑Z의 메인보드 화면에서 칩셋 항목이 SP3 SoC로 표시되는 것이 정상인데, 이 카드를 꽂으면 칩셋이 존재하지 않는 EPYC시스템에서 맨위의 화면과 같이 신기한 광경이 펼쳐진다.

  • CPU‑Z: X870 칩셋이 존재하는 것처럼 표시
  • Windows는 메인보드 변경으로 판단 → PIN 로그인 초기화
  • Windows 정품인증: Microsoft 계정 미연결 시 정품 인증 재요청

왜 이런 현상이 나는지에 앞서 사전지식으로, 칩셋은 ACPI device tree에 SB.PCI0.PCH0 같은 장치 노드를 생성한다. 여기서 SB는 사우스브릿지, PCI0는 CPU의 pcie루트 포트, PCH0가 칩셋이다. EPYC 플랫폼은 원래 PCH0 노드가 없는데, 카드가 자체적으로 ACPI 오브젝트를 생성해버린다. SB (system bus root) └─ PCI0 (PCIe root complex) : 0,1,2,3,4,... └─ PCH0 (칩셋. intel용어로 Platform Controller Hub)

즉, OS 입장에서 “메인보드 칩셋이 새로 생김 → 하드웨어 변경”으로 판단한다.


3. 호환성 문제 해결법

신기한 광경이 펼쳐지기는 한데 처음부터 잘 되는 건 아니다..

  • POST 단계에서 멈춤
  • Windows 로그인화면 직전에 아무 에러 메세지도 없이 재부팅
  • Linux의 dmesg 에러 남발 (PCIe AER, Link retrain 실패 등)

칩셋을 포함에 PCIe에 붙은 장치들에 대해 link training 과정에서 ASPM L1.1/L1.2를 사용한다. 하지만 일부 서버 보드에서 training과정이 실패하고, 칩셋 내부 컨트롤러가 초기화되지 않아서 위와 같은 문제가 발생한다. 에러를 잔뜩 뿜으면서 가까스로 부팅은 했지만, OS가 부팅 후 장치 재초기화를 제대로 할 수 없어 결과적으로 사용할 수 없는 상태가 지속된다.


이 문제를 해결하기 위해서는 아래 4가지를 시도해보자.

  • BIOS/BMC 업데이트
  • ACPI 옵션 OFF
  • ASPM 옵션 OFF

이렇게 해서 training이 정상적으로 이루어지면, 모든 기능이 안정적으로 동작한다. 안정적 동작이 확인된 후에는 위의 ACPI과 ASPM옵션을 켜도 될 것이다. 만약 다시 안된다면 옵션을 끄는 것이 좋다.


4. PROM21 카드의 PCIe 4.0 x4 대역폭 실제 성능

  • M.2 slot : 4개를 x4/0/0/0부터 x2/x2/0/0을 포함해 x1/x1/x1/x1까지 분배가능
    NVMe 1장 단일 구성은 약 7 GB/s에 업링크 한계에 근접
  • USB : 20Gbps 실측 약 1.8 GB/s
  • NVMe와 USB를 동시에 사용해도 업링크가 버팀
  • Oculink-SATA 4포트, 포트당 약 550 MB/s, 4개 풀로드 시 약 2.2 GB/s


5. 이 카드를 구입한 이유와 장단점

Supermicro H12SSL-NT은 USB 포트가 3.0 5Gbps 6개뿐이고 간혹 이유없이 먹통이 된다. 그래서 대안겸 가상화 패스스루가 잘된다는 리뷰를 토대로 포트당 Root Hub를 가진 Startech PEXUSB3S44V를 구입해 사용했지만 여러 문제가 있었다. 일반적인 메인보드에서는 아무 문제가 없다보니, 서버보드와 상성문제로 보인다.
  • H12SSL에서는 가끔 두 포트만 인식
  • UEFI 부팅 불안정
  • PCIe 리트레이닝 실패

USB4 카드는 Thunderbolt 제약(GPIO통신용 전용 포트가 필요) 때문에 장착 불가능했다. 안정적인 USB 남은 선택지가 사실상 이 B650 칩셋 카드뿐이었다. 다소 트러블 슈팅이 있었지만 현재는 supermicro H12SSL-NT보드에서 모든 기능이 정상동작하고 심지어 USB나 M.2포트를 통해 부팅도 가능한 것을 확인했기에 아주 만족하고 있다. 단점이라면, 가격에 거부감이 들 수 있다는 점이다. 26/8/1 현재 $199이며 B650보드가 더 저렴하게 팔리는 것을 생각하면 부품을 보유한 사람에 한해서는 비싸게 느껴질 것이다. 단 한가지 기능만 추가할 생각이라면 PROM21보다는 각 기능에 특화된 x4 대역폭에 적합한 확장카드 구입가격이 훨씬 저렴하다.

  • 대역폭은 작지만 PCIe2 x2를 x1 4포트 PCIe스위치를 aliexpress에서 저렴하게 구할 수 있다.
  • SATA만을 확장하고 싶다면 x8 SAS HBA를 사는 것이 성능/안정성/가격 면에서 좋다. 슬롯문제로 x4가 반드시 필요하다면 aliexpress에서 2.0 x4 16포트 확장카드도 저렴하게 구할 수 있다.
  • USB 10~20Gbps 확장카드도 저렴하게 구할 수 있다.
  • 드라이버가 필요없어서 Mac, Raspberry Pi 등 ARM시스템에서도 문제없이 동작한다.
하지만 슬롯이 하나밖에 없는 상황에서 위의 모든 기능을 적당한 수량을 포함해서 확장하고 싶을 때에는 B650 칩셋제품이 압도적으로 유리하다. PCIe 3.0을 포함한 4.0 스위치는 많이 비싼 물건인데, B650은 물량의 힘으로 다기능 원칩을 싸게 공급할 수 있는 셈이다. 생각해보라, 과거 고급보드에서 PLX칩셋(PCIe 스위치 칩셋, 현재는 Broadcom에 인수합병)을 통해 PCIe슬롯을 확장할 수 있던 것에 비해 최신 고급보드에서 이 칩셋이 보이는가? 안보이는 이유는 PLX칩이 일반 메인보드가격의 몇 배나 되어 일반적인 메인보드에 가격문제로 도입을 할 수 없기 때문이다. x4배속용 칩이라도 매우 비싸다. 반면 PROM21 제품은 적당한 대역폭을 상대적으로 저렴한 가격에 M.2 4슬롯으로 마음만 먹으면 4.0 x1 (2GB/s) 대역폭으로 효율적으로 나눈 4슬롯에 의한 저속 I/O를 무한 확장을 할 수도 있다. 대부분의 M.2 bifurcation 확장슬롯카드가 x16용인 것을 감안하면, 이것도 활용하기에 따라서는 굉장한 가성비로 슬롯을 낭비하지 않으면서 쓸 수 있는 것이다.

  • M.2 1슬롯 SATA 3.0 (~500MB/s) 5포트확장.
  • 1080p60 또는 4K60 캡쳐보드 ※M.2 캡쳐보드 PCIe버전은 대부분 2.0 x1 or x2
  • Legacy용 시리얼포트 또는 프린터포트 대량확장 ※이런 것들은 거의 전부 PCIe 1.0 x1이다.


6. 총평 — “외장형 PCH”라는 기괴한 구조가 의외로 실용적이다.

 장단점이 분명하게 존재하지만, 쓰임새에 따라서는 이만한 가성비도 없다.

이 카드는 사실상 ASMedia 기반 PCIe 스위치 + USB/SATA 컨트롤러 집합체이며, “외장형 PCH”라는 일반적이지 않은 구조에도 불구하고 정상적인 칩셋처럼 동작한다.

또한 PCIe 스위치가 통상적으로 매우 비싸기 때문에, 이 카드는 적당한 대역폭의 PCIe 스위치를 저렴하게 대체하는 실용적 솔루션이 될 수 있다. 현재로서는 오픈소스로 자체제작을 제외하면 한두제품만 존재하여 상대적으로 비싼 감이 있지만, 추후 이런 옵션도 가능하다는 점이 붐이 일어서 가격이 떨어지기를 기대해 본다.

2026/03/15

[Korean] Mikrotik router의 내부 container 또는 하단 서브라우터에 tailscale 운용방법


최초작성: 2026/3/15
수정1: 2026/3/21
 - container 지원 ARM64 가장 저렴한 모델: L009 (ROS 7.22부터)

1. 서론

 Mikrotik 라우터를 15년 정도 사용해오면서 다수의 거점에 설치한 Mikrotik router를 site-to-site VPN연결을 L2TP-ipsec으로 운영해왔습니다만, 최근 android가 l2tp 지원을 없애버리는 바람에  Wireguard로 바꿨습니다. 

 Wireguard는 최근 엔트리 모델을 제외한 거의 모든 CPU가 쓸 수 있는 ipsec 하드웨어 암호화 가속의 지원을 받을 수 없는 대신 최신암호화 알고리즘을 사용하며 일반적으로 유명한 OS들이 지원하기 때문에 최신기기를 쓴다면 바꾸는 것이 좋습니다. 가볍고 정말 빠릅니다.

 그렇다고 Wireguard가 마냥 좋기만 한 건 아니고 L2TP에서 바꾸면서 불편했던 점 한가지는, OSI계층이 L2(MAC)이 아닌 L3(IP)방식이기 때문에 L2 네트워크 검색를 쓰는 소프트웨어에서 검색이 안됩니다. 그걸 감안하면 하드웨어가속이 없는데도 고속이며 간편하게 쓸 수 있는 장점이 있습니다.

 하지만 이것도 site-to-site를 연결하는 거점수가 적다면 편한데(이건 L2TP도 마찬가지입니다), 관리하는 거점수가 점점 많아지다보니 mesh VPN을 일일이 연결하기에는 많이 힘들고, 스크립트를 써서 하기에도 관리를 하자니 마땅한 대시보드가 없었습니다. 정말 이런 관리 대시보드 만드시는 분들 존경합니다.  그래서 찾다찾다 Wireguard기반의 mesh vpn을 자동생성하고, 관리 페이지에서 소프트웨어적으로 일원화된 패킷 제어 정책이 가능한 tailscale을 도입하고 싶었습니다. 

 Tailscale의 각 거점간 제어는 Tailscale 또는 Headscale 관리 페이지에서 하지만, 서로간의 실제 트래픽은 센터를 거치지 않고 P2P로 전송됩니다. 2026년 3월 현재 tailscale서비스는 3명의 user 및 100대 device까지 연결할 수 있어 개인 및 중소규모 용도로는 충분합니다. 그 이상의 경우는 오픈소스판 headscale 컨트롤러를 직접 설치해서 운영하거나 유료 플랜을 고려해 봐야 합니다.

 사실 Mikrotik에는 Tailscale대신 RouterOS 7부터 ARM32/ARM64/x86-64 CPU기종부터 Zerotier를 네이티브앱으로 지원하기 시작했습니다. Zerotier는 유저(클라이언트)측면에서 매우 설정이 간편하여 그냥 쓴다는 식의 개념이며, OSI L2로 인식하기 때문에(공식문서를 보면 엄밀히는 L1~L3를 애매하게 걸쳐있는 듯 합니다) MAC 기반의 검색이 가능해집니다. 가입해서 맛만 본 결과, 관리자측면으로는 상당히 복잡해서 쓰기 힘들었고, 결정적인 건 zerotier가 무료플랜이 빈약해서 Tailscale로 네트워크를 새로 구축했습니다. 아직 Mikrotik에는 네이티브 앱이 없어서 container를 직접 생성해서 돌리거나, Mikrotik 밑에 openwrt 등 서브라우터를 달아 Tailscale 커널모드로 돌릴 필요가 있습니다.

 그럼 지금부터 Tailscale의 서브라우터와 container설치 방법을 각각 알아보겠습니다. Mikrotik에서 돌아가는 tailscale은 kernel 모드 wireguard가 아닌 user space모드로 돌아가기 때문에 subnet router 기능 등이 정상적으로 동작하지 않을 수 있습니다. 확실한 동작을 위해서는 서브라우터에 openwrt나 리눅스등에 설치해서 사용하는 게 좋습니다.

2. Mikrotik 하단에 물리는 서브라우터에 Tailscale을 설치
3. Mikrotik 내부 container에 Tailscale을 설치


2. Mikrotik 하단에 물리는 서브라우터에 Tailscale을 설치(타사 공유기도 가능)

 되도록이면 3의 내부에 container로 돌려보고 싶은데 정 안되면 이 방법을 사용하시면 됩니다. 가상적으로 안되면 물리적으로 해결해버리는 게 가장 확실한 방법입니다. 저같은 경우에는 container와 L3 switch에 openwrt를 설치하고 tailscale을 올려서 여러개의 tailnet을 사용하고 있습니다. 

 사실 이 방법 자체는 메인 라우터가 꼭 mikrotik이 아니라 어떤 공유기라도 사용할 수 있으며 정적 라우팅에 한줄 추가해주는 것 만으로 똑같이 쓸 수 있습니다.

 개인적으로는 서브라우터에 openwrt luci 웹관리페이지를 올리고 소프트웨어 메뉴에서 업데이트 후 luci-app-tailscale-community 설치 및 재부팅해서 쓰는게 제일 간편하고 직관성있게 관리할 수 있어서 추천합니다.

 대부분 mikrotik이 내부에서 접근가능한 proxmox 등에 가상머신을 생성하여 tailscale을 설치하는 편이 간편하지만, 저전력으로 해결하고 싶다면 라즈베리파이 또는 안쓰는 오래된 라우터에 openwrt 등을 설치하고 tailscale을 설치하여 사용하는 방법이 주류입니다. 기본적으로 tailscale까지 설치하였다고 가정하고 라우터측 설정만 알아봅니다.

tailscale이 설치된 서브라우터의 ip 172.24.0.2

mikrotik 라우터의 ip 172.24.0.1


  -tailnet에 트래픽이 나갈 수 있도록 정적 라우팅(static routing)지정
   /ip/route add dst-address=100.64.0.0/10 gateway=172.24.0.2
   tailscale의 개인네트워크 주소대역 100.64.0.0/10으로 나가는 게이트웨이를 container를 통해서 나가게끔 지정하는 설정입니다. 이 설정이 없으면 라우터 밑에 물린 단말들이 tailnet 바깥으로 통신할 수 없습니다.

 Mikrotik 측에서는 설정이 이게 끝입니다. tailnet으로 향하는 트래픽만 전담으로 처리하는 서버를 지정하는 것만으로 tailnet과 통신할 수 있게됩니다. 만약 디폴트 게이트웨이를 tailnet으로 지정하고 exit node를 별도 지정할 경우 모든 트래픽이 VPN처럼 지나가게 됩니다. 이러한 예제가 apple tv나 아마존 fire tv스틱에 tailscale을 설치하고 VPN용도로 미국 또는 한국 전용 컨텐츠 시청을 위해 활용되고 있는 듯 보입니다.

3. Mikrotik 내부 container에 Tailscale을 설치

 3.1 Container-Tailscale 설치가 가능한 모델

 CPU 아키텍쳐: ARM64, X86, ARM32(초심자 비권장)
 ※초심자는 ARM32v5모델을 안쓰는 게 좋습니다. 
    hEX S(2025)를 포함해 공식홈페이지에 "ARM64"가 아닌 "ARM"으로 표시된 것을 말합니다.
    CPU자체가 ARM64지원해도 펌웨어가 32bit인 경우도 마찬가지로 컨테이너를 다루기 어렵습니다.

 CPU아키텍쳐는 Mikrotik 홈페이지의 하드웨어 스펙을 자세히 확인하시길 바랍니다.

 위의 3개 아키텍쳐 중 ARM32 CPU를 사용하는 router 모델은 arm32v5 아키텍쳐용 패키지 이미지를 다운로드 받아서 써야하는데, 대부분의 docker/github에서는 ARM32용을 arm32v7 이미지만 기본제공을 하고 Mikrotik  arm32 CPU용 arm32v5 패키지는 대부분 없어서 직접 이미지를 빌드해야합니다. arm32v5는 매우 오래된 아키텍쳐이며, 이 과정을 아무리 요즘 AI가 방법을 다 가르쳐준다 한들 임베디드 환경용 이미지를 직접 빌드하는 작업은 매우 진입장벽이 높아서 정말 고생할 겁니다. 작업중간에 트러블이 생겨도 이게 무슨 문제인지 이해를 못해서 진행이 안될 것이 뻔하기 때문입니다.

2026/3/21 update:
 L009모델이 가장 저렴한 모델이며 ARM64를 지원하기 시작했습니다. 따라서 container를 사용하여 tailscale을 손쉽게 구현할 수 있습니다. hEX S (2025)의 ARM64화는 아직 가망이 안보입니다..

 저도 hEX S (2025)모델이 ARM CPU모델 중 가장 저렴하여 이 모델을 구입해서 설치하려 했지만, 구입하고 나서 OS가 arm32v7 미지원(CPU하드웨어적으로는 v5/v7 양쪽 다 지원)이라서 직접 빌드해서 써야하는 상황이라는 것을 알았을 때는 이미 늦었고, 한번만 만들고 계속 쓸 수 있다면 하겠지만 container의 특징상 이걸 펌웨어 업데이트할 때마다 새로 빌드할 필요가 있었습니다. 어찌저찌 한번 빌드환경을 만들면 좋겠지만 대다수의 사람들이 그렇게까지는 못하기 때문에 고역일겁니다.

 라우터 장비에서 돌아가는 컨테이너 특성상 보안이 중요하기 때문에 공식 패키지만 사용하는 게 좋지만 arm32v5용 이미지를 누군가 따로 만들어 공개중인 비공식판을 쓰겠다면 아래 링크를 쓰면됩니다.
저같은 경우에는 ARM64 Mikrotik장비에 container, 그리고 안쓰는 구형 mips계열 실기라우터에 openwrt를 올린 후 각각 독립적인 tailnet을 구성해서 쓰고 있습니다.

seanmamasde/tailscale-mikrotik:latest-armv5

Package tailscale-mikrotik · GitHub



 3.2 사전준비 설정
 간혹 위치가 약간 틀린 경우도 있긴 하지만 기본적으로 Mikrotik의 winbox는 커맨드라인을 거의 그대로 바라보는 형식이기 때문에 "커맨드=winbox의 메뉴위치"라서 익숙해지면 직관적입니다.
  -USB메모리(SSD) 준비 : mikrotik에 USB를 꽂고 winbox에서 ext4로 포멧하는 게 가장 쉽습니다.
    /system/disks에 있습니다.

  -container용 전용 브릿지 생성 및 IP부여
    /interface/bridge add name=bridge_container
    /ip/address add address=172.24.0.1/24 interface=bridge_container
    ※Container이미지용 IP가 아닌 같은 subnet대역의 라우터측 IP 지정입니다.

  -tailscale container용 가상이더넷장치 생성 
    /interface/veth add name=veth_tailscale address=172.24.0.2/24 gateway=172.24.0.1
    /interface/bridge/port add interface=veth_tailscale bridge=bridge_container
    ※Container이미지용 IP지정입니다. /ip/address에서 지정이 아닌 가상interface생성시에 지정됩니다. /ip/address에서 직접 지정해도 되긴 합니다만 별 의미가 없고 관리가 난잡해지니 veth에서 지정해주는 것이 좋습니다. 복수IP도 지정 가능합니다.

  -tailnet에 트래픽이 나갈 수 있도록 정적 라우팅(static routing)지정
   /ip/route add dst-address=100.64.0.0/10 gateway=172.24.0.2
   tailscale의 개인네트워크 주소대역 100.64.0.0/10으로 나가는 게이트웨이를 container를 통해서 나가게끔 지정하는 설정입니다. 이 설정이 없으면 라우터 밑에 물린 단말들이 tailnet 바깥으로 통신할 수 없습니다.

  -container 앱의 기본설정
   /container/config set registry-url=https://ghcr.io tmpdir=/usb1/container/pull
  ※반드시 라우터 내부 NAND 플래시가 아닌 USB또는 외장ssd로 지정바랍니다.
  ※github가 아닌 docker로 지정하면 계정/패스워드도 필요합니다.


  -tailscale container 이미지 작성 전 상세설정1 (tailscale관리페이지 설정)
   Setting ->Keys->Generate auth key->
   description을 적당히 지정, "Pre approved"을 ON한 후 키생성을 하면 단 한번만 보여주는 키를 생성합니다. 관리자라도 정말로 한번만 보여주니까 반드시 복사해두십시요. 잃어버리면 revoke해서 비활성화 하고 다시 키생성하면 되긴 합니다. 이 키는 로그인ID와 패스워드와 같은 것이라 누구에게도 알려져서는 안됩니다.







  -tailscale container 이미지 작성 전 상세설정2 (mikrotik 라우터 설정)
   /container/mounts add list=tailscale_mount src=/usb1/container/tailscale dst=/var/lib/tailscale
   source는 이미지가 위치할 장소지정을 의미합니다. 내장 NAND는 절대 지정하지 말기 바랍니다.
   destination는 이미지 내부의 tailscale의 위치를 지정하는데, 밑의 envs(environment)옵션지정과 반드시 일치해야 합니다. TS_AUTH_KEY에 위에서 생성한 auth key값을 "tskey-auth-"를 포함해 그대로 복사합니다. 이 키가 윈도우가 아닌 장비들이 tailnet에 로그인할 때 쓰입니다.

   /container/envs add list=tailscale_envs key=TS_EXTRA_ARGS value=--accept-routes
   /container/envs add list=tailscale_envs key=TS_ROUTES value=172.24.0.0/24
   /container/envs add list=tailscale_envs key=UPDATE_TAILSCALE value=-y
   /container/envs add list=tailscale_envs key=TS_STATE_DIR value=/var/lib/tailscale
   /container/envs add list=tailscale_envs key=CONTAINER_GATEWAY value=172.24.0.1
   /container/envs add list=tailscale_envs key=TS_AUTH_KEY value=tskey-auth-(키코드)
 라우터 내부의 서브넷 접근을 혀용하기 위해 accept routes를 허용했고, VPN용도로 쓰고싶은 분들은 TS_EXTRA_ARGS에 --advertise-exit-node를 스페이스 하나 추가로 옵션지정해주면 됩니다. 
 172.24.0.0/24은 라우터의 내부 서브넷입니다. 예제로는 위의 container 브릿지용 대역만 넣었지만 이걸 넣지않고 라우터 별도 내부대역을 지정하면 그 대역 단말들을 tailnet에 접속한 모든 단말들끼리 외부에서 직접 접근이 가능해집니다. 예를들면 mikrotik의 기본대역 192.168.88.0/24을 추가해주면 라우터의 winbox를 포함한 기본설정된 내부대역을 접근할 수 있습니다. 만약 대역을 192.168.88.0으로 하겠다면 /ip/route의 정적라우팅도 잊지말고 바꿔야 합니다.

  드디어 준비가 끝났습니다. 이제 이미지 생성입니다.

  -tailscale이 설치된 container작성
  /container add name=tailscale1 remote-image=tailscale/tailscale/latest root-dir=/usb1/container/tailscale interface=veth_tailscale dns=8.8.8.8 mountlists=tailscale shm-size=64MB tmpfs=/tmp:64:01 envlists=tailscale start-on-boot=yes logging=yes 
  ※fluent-network가 제작한 이미지도 사용가능하지만 공식 tailscale과 envs옵션지정이 같은 기능이라도 약간 틀려서 혼동할 수 있으니 주의바랍니다.

 여기까지 하면 github의 tailscale공식페이지에서 각 장비에 맞는 CPU아키텍쳐의 이미지를 자동으로 다운로드 해서 생성합니다. 문제가 없다면 생성되었을 것이고 수동으로 start 해줍니다.
   /container start tailscale1  (위에서 생성한 name명을 입력)

github서버 이상 또는 라우터 펌웨어 버그나 자동 생성 이미지가 라우터와 다른 CPU아키텍쳐로 생성된 게 아니라면 정상 시작할 겁니다. 위에서 자동 approve를 했기 때문에 tailnet에 연결되었습니다.

하지만 아직 subnet 연결이 허용안되어 있으니 연결된 머신을 클릭하여 awaiting approval을 edit에서 대역을 체크해주면 이제 같은 tailnet에 접속한 모든 PC/휴대폰/서버 등에서 라우터 내부와 통신이 가능해집니다. 또한 잊지말고 각 머신의 오른쪽 "..."을 클릭해서 키가 만료되지 않도록 "Disable key expire"를 클릭해주면 키 재성성을 할 필요없이 영원히 계속 사용할 수 있습니다.






여기까지가  mikrotik에서 tailscale container를 생성하여 접속하는 방법을 설명하였습니다. 저는 현재 subnet route가 정상작동하고 있지만 처음 생성했을 당시에는 통신이 불가능했었습니다. 왜 갑자기 가능한지는 지금도 모르겠지만 잘 안된다면 스트레스 받지말고 물리적인 서브라우터를 밑에 물려서 tailscale을 별도 설치하는 게 확실한 방법입니다.

4. 결론
 물리적인 방법과 container로 mikrotik에서 tailscale을 운용하는 방법을 다뤄봤습니다. ARM32를 처음 도입했을 때 공식이미지가 존재하지 않는다는 걸 깨닫고 값싼 중고 라우터를 구해 물리 tailscale 게이트웨이를 제작해서 쓰다가 컨테이너도 도전해서 잘 돌아가서 운용중에 있습니다. wireguard보다 훨씬 운용이 편해져서 아주 만족하고 있습니다.

 굉장히 긴 글 읽느라 수고하셨습니다. 

2024/06/01

[Korean] JAMMA기판을 캡쳐를 위한 RGBS 및 음성감쇄기

 7년전에 JAMMA기판에 대한 녹화방법을 쓴 글을 썼었는데 시간이 많이 흘러 더 편리한 방법이 나오고, 무엇보다 오픈소스의 힘과 개인이 취미로 PCB제작을 쉽고 싸게 할 수 있는 길이 생겨서 여러모로 발전된 방법으로 다시 업데이트하여 소개하려 합니다. 과거에 썼던 글 중에 부품이 EOL(end of life)되어서 이제는 절판됐거나 많이 비싸져서 추천할 방법이 아니게 된 것도 이유중 하나입니다.

과거 작성한 글 중에 아래 2개가 부품단종 또는 상품 삭제로 한국실정으로는 조금 곤란하게 되었습니다.
1. aitendo RGB-VIDEO encoder : 엔코더칩 ROHM사의 BH7236가 EOL로 알리에서도 2-3배가격
2. VICTOR AP-122A -10dB감쇄기 : 라쿠텐 글로벌마켓에서 상품삭제로 아마존재팬만 존재

Pandora Box for Technical Experience: [Korean] 특집: JAMMA기판을 캡쳐해보자 (2), GV-USB2와 RGB-VIDEO엔코더를 사용한 염가 JAMMA기판 녹화방법 (lpokeh.blogspot.com)

Pandora Box for Technical Experience: [Korean] 특집 : JAMMA 기판을 캡쳐해보자 (3), RGB캡쳐를 보다 손쉽게 하는 재료들 (lpokeh.blogspot.com)

Pandora Box for Technical Experience: [English] A short review of pro-grade A/V switcher and its supported input resolutions. (lpokeh.blogspot.com)

 아케이드 JAMMA기판은 최근 트렌드인 일반 PC를 이용한 기판에 비해 전용 설계기판을 채용하여 따로 VGA단자와 3.5mm 스테레오 라인아웃 등 쓰기쉬운 출력포트가 없다보니 자작하거나 해외등에서 미리 제작된 breakout 제품을 사야됩니다. 요즘 네이버쇼핑에 개인이 자작한 물건을 올려서 판매하는 경우도 있다보니 잘 찾아보면 그런곳에도 있을지도 모르겠네요.

 오랜만에 이 글을 작성하게 된 계기는, 제가 간간히 지인의 게임센터에 기판캡쳐에 관해 도움을 준 적이 있었는데, 점장이 필요수량을 말하면 제가 다른 지인과 함께 제작해서 세가 블래스트 캐비넷 내부에 설치해 준 적이 몇 번 있었습니다. 그 때마다 항상 수작업으로 제작했었는데 시간도 시간이고 JAMMA 하네스는 56핀이다보니 납땜포인트도 많고, 중간에 리드선을 따야하니 여간 귀찮은 일이 아니었습니다. 제일 골치아팠던 것은 "더는 필요없으니 2-3개만 추가제작" 이라고 말해놓고선, 시간이 지나자 "더 필요해졌다", "어딘가 짱박혀서 못찾겠다" 가 수도없이 반복되어 왔습니다. 중간중간에 저는 항상 이럴바에 PCB로 제작하자고 건의를 해봤지만 항상 그럴 필요까지는 없다고 해놓고 이러니... 더군다나 다들 나이가 들어가니 이젠 짬을 내기도 점점 버거워집니다. 몸도 그렇고 일이 바빠지다보니 평일에 집에와서 뭘 설계/제작한다는 것이 이제는 천근만근입니다(아이고..)

 더군다나 또 매장을 새롭게 오픈하다보니 또 수량제작이 필요한 상황이 와서 이제는 노답이다 싶고 항상 도와주던 지인은 아무리 납땜의 고수라도 시간이 없다보니 이번에야말로 설득해서 PCB제작을 강행했습니다. 

 이번에 PCB화를 하면서 2가지를 제작했습니다. 하나는 JAMMA기판을 꽂으면 알아서 출력해주는 변환기판 betsubetsu를 약간 수정, 또 하나는 VGA단자를 쓰는 RGBS직렬 감쇄기입니다.


1. betsubetsu 영상/음성 출력

 buffis가 제작한 betsubetsu라는 breakout기판이 github에 오픈소스로 공개되어있습니다.
GitHub - buffis/betsubetsu

 일전에 비슷한 물건을 axunworks에서 구입해서 하나 갖고있었는데 수량으로 필요하다보니 구입하려면 가격이 만만치 않고 axunworks도 수제작이다보니 물건 받기까지 시간이 굉장히 오래걸립니다. 알리에서도 요즘은 많이 팔긴하는데 거기서도 가격이 생각 이상으로 비싸다보니 수량구입하기에는 좀 망설여졌습니다. 그래서 대안책으로 존재자체는 예전부터 알고있었던 betsubetsu 회로를 가지고 예전 ZSYNC-1의 실패담(전원 넣자마자 콘덴서 터짐...)을 교훈삼아 회로 하나하나 어떤 원리인지 공부하고, 부품이 쓸데없이 비싼 건 구하기 쉬운 다른 대체부품으로 교환, 필요없는 전압모니터기능을 삭제하는 대신 LM1881을 넣어 동기신호 안정화를 추구했습니다. 이 기판은 THS7374 비디오 버퍼앰프를 사용하기에 가변저항으로 캡쳐출력용 화면의 밝기를 조절해도 캐비넷측 화면밝기가 변화없이 쓸 수 있습니다. 단순 분리가 아니라 모니터측과 VGA출력측이 완전히 격리되어 있기때문이지요. 간혹 출력이 세거나 약한 기판을 캐비넷에 바꿔 달때마다 매번 밝기조절이 필요한데, 버퍼회로 없는 단순회로라면 녹화측에도 밝기가 변해서 운용하는 측면에서도 그리 좋은 상태는 아니었습니다.

 완성된 회로는 JLCPCB에 PCB제작 및 부품실장까지 포함해서 주문을 넣었더니 5장 기본 수량에 배송비 포함 125달러 정도 나왔습니다. SMD부품 등 작은 것들이 있다보니 손납땜은 쉽지않고 스탠실과 기판제작만 하고 나머지는 핫플레이트에 굽기만 하면 싸게 나오긴 하는데 핫플레이트도 없고 납땜하기도 이젠 귀찮아서 다 맡겼습니다. 달러가 요즘 고공행진이라 많이 비싸긴 하네요..

사진1. betsubetsu 수정판 3d 프리뷰 (easyeda pro사용)



 - 교체한 부품: Texas Instruments TY-250 오디오 트랜스포머

 기판의 왼쪽 아래에 보이는 정사각형 검은 T1부품이 있는 장소에 원래 커다란 갈바닉 아이솔레이션 TY-250이 있었습니다. 이게 생각보다 비싸고 한국이나 일본으로 배송하기에는 digi-key나 mouser다보니 기본적으로 국제배송에 일정금액 이상부터 무료배송이다보니 배송비도 2000엔 정도로 비쌌습니다. 다른 대체부품이 없나 찾아보니 murata사의 DA101JC가 있었는데 이것도 일본 국내에는 파는 곳이 안보이긴 했는데 mouser에서 다른 것 살것도 포함해서 무료배송단위를 간신히 넘어서 mouser에서 구입했습니다. 크기도 작아지고 데이터시트에 기술된 스펙에도 오디오용으로 문제없어서 이것으로 교체했습니다. 

 오디오 트랜스포머를 쓰는 건 전원과 IO신호핀이 쓰는 ground를 쓰지않고 완전히 분리해서 백그라운드의 화이트 노이즈 억제하는 것이 주목적입니다. 게임방송 등에서 아무 소리가 없을 때 우~웅하는 노이즈음이 들리는 이유가 이 화이트 노이즈인데 주변 ground 신호와 완전히 분리해서 녹화기에 넣어주면 노이즈가 많이 사라져서 소리가 없는 장면에서조차 노이즈가 안들리게 됩니다. 물론 녹화기내부에 아날로그 신호가 디지털로 변환되기 전단계인 ADC회로 직전까지 이런 분리회로가 되어있어야 의미가 있습니다. 염가형 녹화기에는 이런 처리가 안되어있을 수도 있습니다. betsubetsu에서 기껏 노이즈억제처리한 음성이 출력되어도 녹화기까지 거리가 너무 멀면 그동안 주변에서 노이즈가 또 들러붙을 수가 있어서 3.5mm형태의 별도 아이솔레이터를 달아줄 필요가 있습니다.
 그리고 이 기판은 음성 감쇄회로까지 내장되어 있어서 VICTOR AP-122A같은 음성감쇄기가 필요없습니다. 개당 1000엔정도 했으니 이것도 무시못할 가격인데 전부 통합시켜 비용절약도 됩니다. 오리지날 betsubetsu와 AP-122A의 회로를 참고해서 짬뽕시켰습니다.

 - 전압모니터 삭제대신 LM1881추가

 일부 타이토 F3같은 동기신호가 찌그러져있는 등 더럽게 나오는 경우 캡쳐가 안되거나 심하게 흔들리는 경우가 있어서 따로 비디오 동기신호를 적절히 재구성해줄 필요가 있었는데, 이걸 기판안에 회로로 넣어버렸습니다. 이걸 넣는데는 개인적인 트라우마 극복이 좀 필요했었습니다. 현재 micomsoft XSYNC-1이 절판된 지금, 회로를 본따서 2중동기신호 클리너 ZSYNC-1을 7년전에 제작했습니다만, 당시에는 PCB와 회로제작 초보자다보니 전원넣자마자 부품하나가 타버리는 실패한 트라우마가 있어서 이 회로를 다시 만들기에는 좀 주저함이 있었습니다. 다행히 이번에는 문제없이 성공했고 실기판에 물려서 정상동작을 하는 것을 보고 안도의 한숨을 냈습니다.

 - framemeister용 DIN8단자 대신 VGA단자 채용

 micomsoft의 framemeister도 갖고 있긴 하지만 게임센터에서 캐비넷 하나당 framemeister를 집어넣는 것은 너무나도 비용이 많이 들어가고 절판되었습니다. 요즘은 같은 용도로 더 싸고 좋은 OSSC가 있지만, 이것도 아무리싸도 10만원 이상 들어갑니다. 그리고 업스캔 된 화면에서 게임을 하는 것도 아니니, 목적에 맞지않는 물건을 비싼 돈 주고 도입할 필요가 없습니다. 따라서 중고시장에 널린 프로 업무용 스캔컨버터를 싼값에 잔뜩 구해와서 쓰는 중입니다. 

 서양쪽 forum에는 DVDO Iscan VP50 등이 알려져있죠? 일본에는 일본국내산 장비들이 중고시장에 잔뜩 널려있어서 모델명과 기능만 숙지하고 있으면 목적에 부합하는 프로장비를 싸게는 개당 2-3만원 수준에 구할 수도 있습니다. 물론 게임 실플레이용 목적이 아니다보니 화질을 안정/향상시키는 이미지프로세싱에 중점을 둔 방송용 장비다보니 옵션을 아무리 조절해도 지연은 필연적으로 있으며, 30-50ms정도 출력지연이 있습니다. 

 다시 얘기를 돌려서 사용중인 업스캔컨버터는 VGA단자를 쓰다보니 거기에 맞춰 betsubetsu의 출력단자를 MSX호환의 DIN8단자에서 VGA단자로 바꿨습니다. VGA단자의 출력신호는 일반 0.7Vpp에 맞게 JAMMA 영상의 3.3Vpp 또는 5Vpp에서 가변저항으로 감쇄시켜 나와서 그대로 아무생각없이 스캔컨버터에 입력시켜주면 아주 깨끗하게 나옵니다. 업무용 스캔컨버터는 전부가 다 그런 건 아니지만 15k~24k신호도 문제없이 받아내고 GBS-8200같은 약간 쓰기 불편하고(GBS-C도 포함) 노이즈존재, 신호처리가 약간 불안정함이 있는 등의 문제도 없습니다. 물론 업무용 장비들이 JAMMA기판처럼 비표준신호를 대상으로 한 기기가 아니다보니 항상 장점만 있는 것은 아니지만, 이런 장비를 써보고 '프로용 장비란 게 이러니 비싸구나'라는 것을 새삼 깨닫게 되었습니다. 

 요즘은 그래서 저 개인적으로도 직접 게임용이 아니고 캡쳐나 방송용 목적이면 업무용장비 중고를 구해서 쓰고 있습니다. 풍부한 기능과 세심한 노이즈억제 및 버퍼보상회로 등으로 화면의 안정성이 비교가 안되고 무엇보다 조작편의성이 너무나도 편합니다. 안타깝게도 이건 일본한정으로 한국중고시장에서는 이런 업무용 스캔컨버터가 거의 안보여서 한국실정에는 안맞고, 굳이 구하려면 ebay나 일본 중고사이트를 찾아야합니다. 중고나라는 이용해 본 적이 없다보니 모르겠지만 대충 검색해본 바로는 없다시피 하더군요. 프로 영상장비 취급하는 업체에서 판매하는 중고는 값이 상당하다보니 이런 게임 용도에 수량으로 쓸만한 가격이 안나옵니다.


사진2. 상단의 컨트롤박스와 하단의 게임기판 사이에 물린 betsubetsu수정판의 모습


 약 2주뒤에 JLCPCB로부터 주문한 5개가 도착했고 JAMMA하네스와 교체한 오디오 트랜스포머만 직접 납땜할 필요가 있어서 납땜해주었습니다. 완성해서 동작테스트를 하고 나중에 동작확인용으로 2개는 점포로 배송, 1개는 지인 양도, 1개는 아카트로닉스가 예약, 나머지 1개는 동작확인용 보관...할 예정이었지만 이것도 예약이 걸렸습니다. 수량을 더 많이 만들면 가격은 내려가겠지만 그렇게 많이 필요한 것도 아니다보니 소량만 제작했습니다. 그래도 알리나 axunworks의 개당 80달러보다는 싸니 만족합니다. 


2. 심플한 RGBS 감쇄기

 JAMMA 엣지카드, 하네스, 리드선으로 수제작할 당시에는 가변저항회로도 자작할 필요가 있었는데, 이것도 이젠 귀찮다보니 PCB로 떴습니다. 위의 betsubetsu보다는 기능적으로 매우 심플해서, 그냥 직렬로 양측 포트사이에 가변저항이 달려있는 것 뿐입니다. 전압분리회로도 아니고 단순히 가변저항의 3개 핀 중 2개만 사용해서 정말로 직렬로만 연결시켜서 만들었습니다. 수제작할 당시에 이렇게 만들어 썼던대로 인데, PCB로 떠서 부품실장공간 빼고는 여유공간조차 없을정도로 작게 만들었습니다. 이것보다 작게 하려면 평면이 아닌 수직으로 올려쌓는 형태로 만들어야겠지만 뭐 이거로도 충분히 작다보니 만족합니다. 

 JLCPCB의 기본 사이즈 100x100mm안에 들어가도록 2x3 패널라이징으로 주문을 넣었습니다.
5장 기본수량에 한장당 6개가 들어가니 30개가 나옵니다. 이것도 기판 1개당 가변저항 4개, VGA암단자 2개가 실장되니 30개 납떔까지 전부포함하면 VGA단자가 60개, 가변저항이 120개가 들어갑니다. 가변저항이 개당 핀수가 3개, VGA단자가 개당 15핀+고정핀2핀. 이걸 갯수대로 곱하면 고된 노동이 됩니다. 납땜쟁이가 아니다보니 하루종일 이것만 해도 며칠걸릴지 상상도 하기 힘들어서, 실장포함 주문을 넣었더니 이것도 배송비포함 한 150달러정도 나옵니다. 개당 7000원정도 나오네요.. 부품단가로만 치면 수제작보다는 비싸게 나왔지만 인건비와 시간을 생각하면 싸다고 생각됩니다.

 이것도 30개중 20개는 점포로 배송, 2개는 지인할당, 한개는 동작확인용으로 보관, 나머지 7개는 귀국할 때 아카트로닉스에서 판매할까 생각중입니다. 이거 필요할 사람이 얼마나 있으려나...

사진3. 2x3 패널라이징구성


사진4. RGBS감쇄기의 3d프리뷰

사진5. 실제 기판에 물린 모습
(사진은 컨트롤박스에서 출력된 0.7Vpp출력을 더 감쇄해서 어둡게 보임)

끝내며

요즘은 PC기판이 대세다보니 JAMMA기판 다루는 것도 극소수로 줄어들어서 이런 수요는 이제 없을것이라 생각했는데 간간히 있다보니 마음먹고 PCB로 제작해봤는데, 아이고...너무 편하네요. 이제 삽질할 필요가 없어져서 너무 좋습니다. 필요하면 이제 주문한 이력이 있으니 그냥 추가오더만 넣으면 알아서 제작해주니 더는 고생할 필요는 없을 것 같습니다.

2023/05/11

[English] A short review of pro-grade A/V switcher and its supported input resolutions.

These results provide information for retro gaming enthusiasts who want to record or live stream while switching between multiple sources.

Please note that these results are not guaranteed for all low resolution signals. The sync signal/timing may be degraded due to deterioration over time the capacitors and chips. This can be fixed by replace them with compatible new part or signal correction via multiple step of sync cleaner and video buffer chips. (search keyword for sync cleaner : LM1881, EL1883 or EL4511)

It is important to note that both 24k and 31k refer to common resolution of 512x384p and 640x480p. Uncommon any other special resolution such as 512x512, 512x256, 1024x1024 has not been tested.

15k@240p include some vertical resolution of 224p used in some console game or arcade pcb.


1. Extron ISS 506 Scalers & Signal Processor (USA)


- No OSD-overlay available. Use small front LCD for control or web, remote control.
- No auto-identification of signal type function. It must be set manually.
- Audio connector is not user-friendly.
- EDID emulator is implemented.
- 6 input / 1 output (BNC + DSUB + option port for program and DSUB for preview simultaneously)
- Output upscale : up to 1920x1200p60 reduced blanking or 1920x1080p60
- Input-Output latency : approx. 1.5frame(measured on 1080p60 source-1080p60 output)
- Audio connector : Phoenix contact MC 1,5/5-ST-3,5. 3.5mm pitch (Mft. part# 1840395)
- Open source 3.5mm stereo jack adapter : GitHub - phoenix-audio-adapter 
  (It's an open source shared kicad scheme. Do NOT disturb him/her.)

Acceptable resolution
Resolution RGBHV RGBS Component S-Video Composite
15k@240p Ok Ok Ok Ok Ok
15k@480i Ok Ok Ok Ok Ok
24k Ok Ok ? (Ok?) - -
31k@480p Ok Ok Ok - -
above~ Ok Ok Ok - -






OSD-overlay available.
- Power connector is not user-friendly.
- EDID emulator is implemented.
- Power connector : Phoenix contact MC 1,5/2-ST-3,5. 3.5mm pitch (Mft. part# 1840395)
- Although 15k@240p RGBS is acceptable, it is forced to be recognized as 15k@480i, which can cause line-artifact noise during blend-method deinterlace processing.

Analog DSUB15 pin assignment
1 : Red, R-Y (Pr)
2 : Green, Luma (Y)
3 : Blue, R-B (Pb)
13 : HSync, CSync
14 : VSync


Acceptable resolution
Resolution RGBHV RGBS Component S-Video Composite
15k@240p Ok※1 Ok※1 ? Monochrome Monochrome
15k@480i Ok Ok Ok Monochrome Monochrome
24k Ok Ok ? - -
31k@480p Ok Ok Ok - -
above~ Ok Ok Ok - -

※1: Recognized as 480i. Artifact (by blend-method deinterlaced?) occurred on the screen. If you dislike this, use other equipment that supports Yadif(a.k.a. adaptive method) or bob method functions.





- OSD-overlay is available.
Automatic signal type identification
- EDID emulator is implemented.
- 6 input / 1 output ( DVI-I + HDMI simultaneously) 
Analog video input : DVI-I, HD-DSUB15 (both can be accept YPbPr/YC/CVBS)
Digital video input : HDMI (DVI/HDMI)

Analog DSUB15 pin assignment (DVI-I port can also be used with a DSUB adapter)
1 : Red, R-Y (Pr)
2 : Green, Luma (Y), Composite
3 : Blue, R-B (Pb), Chroma (C)
13 : HSync, CSync
14 : VSync

Acceptable resolution
Resolution RGBHV RGBS Component S-Video Composite
15k@240p Failed ※2 Failed ※2 Failed ※2Monochrome Ok
15k@480i Ok Ok Ok Ok Ok
24k Ok Ok ? (Ok?) - -
31k@480p Ok Ok Ok - -
above~ Ok Ok Ok - -

※2: Half sized screen displayed; it recognized as 15k@640x480p. This should be cropped on the bottom side later using another method.




- OSD-overlay is available.
- Automatic signal type identification
- 1 analog in / 2 digital out with upscaler and image processing (crop/resize/rotate/...)
- EDID emulator is implemented.

Analog DSUB15 pin assign
1 : Red, R-Y (Pr)
2 : Green, Composite
3 : Blue, R-B (Pb)
13 : HSync, CSync
14 : VSync

Acceptable resolution
Resolution RGBHV RGBS Component S-Video Composite
15k@240p Ok ※1 Ok ※1 Ok ※1 Monochrome Monochrome
15k@480i Ok Ok Ok Monochrome Ok
24k Ok Ok ? - -
31k@480p Ok Ok Ok - -
above~ Ok Ok Ok - -

※1 recognized as 480i. Artifact (by blend-method deinterlaced?) occurred on the screen. If you dislike this, use other equipment that supports Yadif(a.k.a. adaptive method) or bob method functions.

2022/09/06

[Korean] eXA-Arcadia 소개

 이번 포스팅에는 최근(이라 해도 2020년 겨울..)에 큰 마음먹고 지른 eXA-Arcadia라는 아케이드 게임기판을 소개할까 합니다. 사실 이 기판을 사놓고 저말고도 국내에 구입한 사람이 있는지조차 의문일 정도로 한국에는 관련 내용을 찾아볼 수가 없었습니다. 아니면 사놓고도 밝히지 않은 사람들이 있을 수도 있습니다. 저말고도 딱 한사람이 있는데 바로 슈팅게임 "식혼도"를 제작하신 분인데, 이 기판으로 게임을 개발한 사람으로 아마도 특별한 케이스로 봐야겠죠? 

트레이더 코리아에서 구입리뷰가 있었습니다.

 

이 포스팅도 사실 구입한 사람이 없는 것 같은데 써서 뭐하나 싶어서 지금까지 작성을 안했지만, 최근 주변에서 크게 관심을 가지시는 분이 몇 분 있어서 그 분들에게 조금이라도 도움이 될 까 싶어서 작성하기로 마음먹었습니다. 

 구구절절한 기판에 대한 설명은 위키에 적혀있는 듯 하니 생략하고 이 기판의 특징과 소프트 키트의 형태 및 운영노하우와 유의사항에 대해 알아볼까 합니다. 


공식 사이트

exA-Arcadia


0. 구입방법(2023/6/4 update)

 - 공식 홈페이지에서 직접구입 (카드결제)

 - 가장 가까운 일본 현지의 오프라인 기판샾 BEEP또는 KVC Lab에서 현지 구입

주의점은 BEEP와 KVC Lab 온라인판매사이트에서 Exa만큼은 해외판매를 안하고 있습니다. 이유는 두 곳는 어디까지나 일본 국내판매용이며, 일본외 국가에서는 배송대행 할 필요없이 Exa공식 홈페이지에서도 직접 카드결제로 구매가능하기 때문에 일부러 일본 현지까지 가서 구매할 필요가 없습니다.


1. 기판의 특징

 이 기판은 PC베이스로, 전체 크기는 대충 ITX 미니PC 케이스 형태입니다. 그래서 무게도 제법 있는 편으로 약 5kg정도 되지 않을까 생각이 드네요. 케이스 색깔은 심플한 검정색 바탕에 좌측 하단에 로고가 철판위에 찍혀 있습니다. 그외 특정 소프트의 디자인으로 된 한정판 기판이 존재하며, 호환기판의 바리에이션으로 성인용 게임 플랫폼을 지향한 Hawt pink club이 있습니다. 이 기판은 이름 그대로 핑크색이며, 플랫폼 구분을 위해 기판 색깔과 부팅화면 및 대시보드 화면이 나누어져 있을 뿐, 그외 사항은 동일하기 때문에 exa-arcadia소프트를 hawt pink club에 또는 그 반대 기판에 집어넣고 가동해도 문제없이 돌아갑니다. 찾아보면 아시겠지만, hawt pink club은 개인이 집에서 가동하면 모를까 아마 한국 게임센터에서 가동하는 것은 그냥 불가능이라 보시면 됩니다.

주의사항:

- 기판 뚜껑 절대로 열면 안됩니다. 만약 열게되면 정말로 후회할 일이 벌어집니다.

- 밀폐되고 열이 많이 나는 캐비넷에 넣고 가동할 때에는 반드시 배기구 양쪽에 선풍기를 설치하여 열을 뽑아줘야 합니다. 일반적인 25도 환경에서는 가동시에 케이스가 미지근한 수준의 열이 발생하지만, 밀폐되고 환기가 안되는 캐비넷의 경우 상당히 뜨거워지며, 화면이 깜빡이다가 이내 완전히 기판이 열로 사망하는 일이 발생하니 냉각대책 반드시 필요합니다.

- 구매는 공식 홈페이지 (exa.ac)에서 신용카드로 직배송구입 가능합니다. 일본국내 개인에게도 판매하는 기판취급점(BEEP, KVC Lab, WGC)은 해외판매/배송은 안하고 있으며, 억지로 이곳에서 구입했어도 기판의 문제발생시 AS대상 제외될지도 모릅니다. EXA공식 측에서도 분명하게 공식 홈페이지 및 공식판매대리점을 통한 구매만 인정한다고 언급한 바 있습니다.

공식사이트제공 기판 사진
호환기판 Hawt Pink Club의 모습



2. 사용 I/O

eXA-Arcadia는 JVS I/O를 사용합니다. 호환가능한 I/O는 캡콤, 남코, 타이토, 세가 등의 기존 JVS I/O와, 한 개의 I/O로 4플레이어 지원이 가능한 eXA전용 I/O(판매종료) 및 raspberry pi pico를 사용한 뷰릭스용 JVS DASH규격 대응 신형 eXA I/O, 그리고 JVS규격에 맞춰 제작한 동인하드웨어 등이 사용 가능합니다. 동인하드웨어가 의외로 입력지연이 거의 없는 초고속이기 때문에 I/O를 딱히 구비해 두지 않았다면 동인하드웨어 구입 또는 자작도 괜찮습니다.

동인하드웨어 또는 자작은 일본어 포스팅을 번역기로 참조하시면 대충은 알 수 있습니다.

exA-Arcadia基板でのブラウン管出力向け変換遅延と録画


주의사항: JVS기판 공통사항으로 가동시 반드시 I/O를 연결해야 합니다. 가동중 또는 부팅중에 JVS I/O케이블을 빼거나, 부팅전까지 연결이 안되어 있으면 에러화면이 표시되며 정상가동이 안됩니다. 


3. 화면해상도

오퍼레이터 설정의 시스템메뉴에서 640x480(31k)부터 3840x2160의 60프레임까지 표시가능하며, 모든 게임이 4K까지 지원되게끔 설계되어 있습니다. 해상도는 같지만 별도로 CRT의 31k표시모드와 가로/세로 표시, 화면 회전기능이 기판 앞면의 토글스위치로 설정할 수 있습니다. 주의할 점은 이러한 토글형 딥스위치는 반드시 전원을 끄고 해야 안전하며, 가동중에 바꾸면 시스템 에러가 날 수 있으니 하시면 안됩니다(메뉴얼에도 기술되어 있습니다).

 화면출력은 DVI-D와 HDMI가 있는데, 혹여나 LCD가 아닌 CRT로 아날로그 출력을 쓰고 싶을 때는 값싼 HDMI-VGA아답터로 표시 가능합니다.

 FHD해상도 정도가 되면 가로모니터로 세로방향 게임도 즐길 수 있으며, 그럴 경우 빈공간은 일러스트나 벽지로 채워집니다. 반대로 세로화면에서 가로게임을 할 수도 있기는 하지만...
음...뭐 말리지는 않겠습니다.

 캐비넷을 가지고 있는 사람들이 궁금해할 사항인데 15k, 24k는 지원 안하기에 15k 브라운관에서 가동할 분들은 영상을 다운스캔 컨버터로 변환하거나 31k모니터를 별도로 마련할 수 밖에 없으니 주의 바랍니다.

 개인적으로 이 기판을 15k로 가동하는 것은 회의적인 시각으로 보며, 다운스캔변환을 할 경우 그만큼 프레임지연이 발생하여 추천하고 싶지 않습니다. gbscontrol로 다운스캔을 직접 해본 바로는 잘 되는 궁합/세팅도 있지만 잘 안되면 화면이 일그러짐 또는 표시가 불안정해집니다. GBS-8100이라는 편한 다운스캔컨버터도 있지만 이건 화면이 중간에 화면이 찢어지는 티어링이 생기며, 변환으로 3~5프레임 정도의 지연이 발생하기 때문에 액션, 슈팅 장르등에는 매우 부적합해서 추천하기는 어렵습니다. 공식적으로도 15k는 지원하지 않으며, 현재로서는 지원계획 없다고 알고 있습니다. 그 외 업무용 다운스캔컨버터 등은 애초에 게임용으로 제작된 제품이 아니기 때문에 극단적으로 짧은 변환지연을 요구하는 게임용과는 거리가 멀어서 적합하지 않습니다.

주의사항: 

- 가동중에 영상케이블 뽑으면 간혹 에러가 발생하니, 전원내리고 구성변경하는게 좋습니다.


4. 음성

 스테레오 음성이며, 일반 PC처럼 녹색 3.5잭에서 출력 또는 HDMI에서 영상 및 음성 둘 다 출력시켜 TV등에 연결하면 케이블 하나로 해결할 수 있습니다. 기본적으로 캐비넷 안에서 가동할 것을 염두한 물건이기에 HDMI과 3.5음성을 동시에 연결할 경우, 3.5 스테레오 음성측에서만 출력됩니다. 그 후 엠프에 연결하면 스피커에서 소리가 나옵니다. 


5. 소프트킷

 가로로 길죽한 박스안에 포스터, 캐비넷용 팝업, 조작설명서, 카트릿지가 들어있습니다. 카트릿지는 PCI-express 1x형태의 SSD이며, 기판의 4개 슬롯에 삽입하는 식으로 장착됩니다. 버그수정 및 기능강화 등으로 소프트의 업데이트가 이루어지는데, 현재로서는 온라인 업데이트를 지원하지 않기에 일본 본사로 카트릿지를 보내서 업데이트를 받아야 합니다. 업데이트는 2022년 9월 현재 무료로 대응해주고 있지만, 우편배송료는 각자 직접 부담해야 합니다. 그리고 현재 정책적으로 게임이 출시되면 게임센터측만 선행으로 배송되며 개인구입자는 그 후에 배송됩니다. 이유는 게임센터측의 운영을 고려하기 때문인 것 같습니다. 이 기간은 현재 경험적으로는 약 1~2개월 입니다.

주의사항:

- SSD라고 해서 일반 PC에 꽂아보겠다는 생각은 하지 않는 것이 좋습니다.

- 당연한 이야기지만 장착 및 탈착할 때는 반드시 전원 끄고 해야합니다. 



6. exa-arcadia의 모든 게임은 인터넷에 녹화 업로드 및 방송이 금지?
 사실 일전에 잘못된 사실이 와전되어 퍼진 적이 있었는데, 그렇지 않습니다.
2022년 9월시점 단 하나의 게임을 제외하고 녹화 및 방송 등으로 인터넷에 업로드하는 행위를 특별히 막은 적은 없습니다. 엄밀히 말해서 저작권 문제로 공식에 허가를 받고 해야하는 것이 맞긴 하지만 요즘 현실상 그렇게 하면 게임홍보를 막겠다는 식으로 해석되기에 아무도 그렇게 하지 않습니다. 예외로 타노시마스의 "아카와 블루"는 exa측이 아닌 게임제작사측의 의지로 스토리가 드러나는 모드를 업로드하지 말아달라는 있는 것은 사실입니다.

2023/2/19 update
타노시마스사의 아카와 블루가 유일하게 개발사측 요청으로 업소에서 녹화/방송 및 인터넷 업로드 금지였지만, 2023년 2월부로 해제되었습니다(서양 플레이어들은 그런 것 따위 무시하고 잘만 업로드 하고 있었습니다만..) 아울러, 게임장용 키트 판매 재개(한동안 중지했었음) 및 기간한정 개인용 판매를 시작하였습니다(2023년 4월부터 12월말까지)

2023/6/4 update

아카와 블루 재판매개시 일정이 지연되어 6월부터 재개되었으며, 정식으로 인터넷에 영상 업로드금지가 해제되었습니다.

 일단 생각나는데로 죽 적어봤는데, 궁금한 점이 있으면 코멘트 등에 남겨주시면 업데이트 해보겠습니다. 

2021/10/24

[Korean] AMD EPYC 7302 / Supermicro H12SSL 시스템에 Windows 11 설치를 위한 TPM2 모듈 자작

 이 글을 작성한 이유는 집에서 쓰는 PC도 Windows 11로 업그레이드를 하기 위하여 업그레이드 사양을 확인했을 때, TPM2.0 요건을 충족하지 못하여 직접 자작한 경험담을 공유하기 위함입니다. 일반 사용자용 최신 CPU에는 TPM이 내장되어 있어서 특별히 신경쓸 필요 없이, UEFI에서 옵션만 변경해주는 것만으로 Windows 11을 정상적으로 설치가 가능합니다.

 각종 우회방법으로 TPM없이 설치도 가능하지만, 마이크로소프트는 추후 업데이트가 막힐 수도 있다고 언급하고 있습니다. 물론 그것도 언젠가는 우회할 수 있다고 보긴 합니다만, 어찌되었든 설치 후 전혀 업데이트를 하지 않겠다면 우회하여 사용하는것도 괜찮은 방법입니다.


1. 발단

 2021년 6월, 마이크로소프트가 Windows 11의 설치요건으로 더이상 32비트 OS는 출시하지 않으면서 일반인들이 느끼기에는 생소한 조건 하나가 추가되었습니다. CPU요건에 ARM계열도 있지만 여기서는 x86계열만 언급합니다.

  • CPU : Intel 8th gen. AMD Ryzen 2nd gen. or later with VBS, HVCI, Virtualization technology, SSE4.1
  • GPU : WDDM 3.0, Shader 6.5, Direct 12.2 or later
  • RAM : 4GB+
  • MB : UEFI class 3+
  • Storage : 64GB+
  • TPM 2.0 <--- ???

 CPU도 상당히 최신모델로 한정하고 있어서 많은 사람들이 불만을 표현했지만 TPM 2.0? 들어보신 분도 있을것이며, 실제로 몇년전부터 사용하시는 분도 있습니다. 이 모듈의 배경은 2003년 메이져 IT기업들이 TCG라는 단체를 설립하여 암호화 기능 구현을 위한 칩 표준을 제정하였고, 이에 몇몇 반도체칩 제조회사에서 이 TPM용 칩을 제조하고 시작했습니다. 시간이 흘러 2014년에 규격 2.0이 발표되었고, 1.2는 취약점이 발견되어 2.0으로 반드시 업데이트를 해야 하게끔 공표를 하였습니다. 

 PC에 적용되는 것은 TPM칩이 박힌 작은 모듈을 메인보드의 특정 슬롯에 연결하거나, 또는 보드에 이미 장착되어있을 수도 있으며, 이것을 이용한 일반적인 사용용도로는 기업용PC에서 스토리지 등을 Bitlocker로 암호화하여 디바이스가 외부로 유출되어도 암호를 모르면 열람조차 할 수 없게 만드는 강력한 보안보조장치 입니다. 비슷한 용도로 스마트폰에 어느 시점에서인가 몇 년전부터 기본 적용되어있으며, 적용한 이유는 개인 사용자 입장에서는 유출시 PC보다 스마트폰이 개인정보 도난사고가 날 확률이 크기 때문입니다. 인터넷 기능을 쓰지 않던 피쳐폰 시절에는 기껏 도난당해봐야 전화번호부 정도와 메시지 정도로 그치지만, 스마트폰은 은행 인증서, 각종 저장된 ID/패스워드, 기타등등 해커들 입장에서는 이렇게 좋은 먹잇감이 따로 없습니다. 따라서 여러분들은 이미 TPM2를 쓰고있다고 봐도 과언이 아닙니다.

 다시 PC얘기로 돌아와서, Windows 11에서도 이걸 기본사양으로 강제하겠다는 겁니다. 검색해보시면 아시겠지만, 상당히 예전부터 마이크로소프트가 각 보드 제조사에 TPM을 기본사양으로 장착하도록 권유를 했던 모양이지만, 이번에 OS레벨에서 강제 적용하여 PC도 각종 멀웨어나 알려지지 않은 취약점으로 많은 기업 및 개인사용자의 정보를 탈취하는 행위의 60~70% 이상을 막을 목적으로 상당부분 보안성을 강화화기 위함입니다. 몇년된 사양의 보드도 잘 보면 TPM모듈 슬롯 자체는 존재하고 있을겁니다. 대기업 PC본체/노트북 또는 일체형 PC 등에는 이미 설치되어 있을 가능성이 높습니다. 저같은 경우에도 회사에서 지급된 노트북에는 TPM2.0 모듈이 설치되어 드라이브가 Bitlocker를 사용하여 통채로 암호화 되어있으며 이 기능에 TPM이 관여하고 있습니다. 회사 PC는 Windows 10 Enterprise라서 중앙 IT팀에서 통제하에 각종 업데이트를 실시하고 있기 때문에 마음대로 업그레이드를 할 수는 없습니다. 

 이제 가정용PC로 화제를 돌리자면, 집에서 사용중인 제 개인PC는 2대가 있습니다. 하나는 가볍게 사용할 목적으로 사용할 Ryzen 3 / MSI B450 시스템과, 다른 하나는 고부하성 작업을 하기위함으로 EPYC 73x2 / Supermicro H12SSL 시스템이 있습니다. 전자는 CPU 안에 fTPM이라 불리는 TPM이 내장되어 있어서 UEFI옵션을 바꿔주는 것만으로 설치요건이 만족하여 금방 업그레이드가 되었습니다. 문제는 후자인데, EPYC ROME과 RYZEN 3xxx는 같은 세대임에도 불구하고 EPYC에는 CPU내부에 TPM이 내장되어 있지 않았습니다. 따라서 보드에 따로 달아야 하는데, 전 세계적으로 사재기를 했던 모양인지 마이크로소프트에서 6월에 발표직후 가격이 5배넘게 폭등하였습니다. 하필 코로나로 인한 반도체부족문제도 있을 때 이런 상황까지 겹쳐서 칩 자체의 출고가능 기간도 엄청나게 늘어난 상황으로 업친데 덥친 격으로 난감한 상황이었습니다. 그런데 조사해보니 TPM 칩 자체는 아직 싸게 살 수 있었으며, 간단히 납땜으로 선만 연결하는 것으로 자작할 수 있다는 것을 알게되어 직접 만들어 달기로 마음먹었습니다. 정품모듈은 2만원선이었던 것이 10만원이 넘게 가격이 껑충 뛴 상황에 칩은 배송비포함 8000원, 핀 폭을 바꾸는 변환기판포함 합계 1만원선에 제작하는 게 낫다고 봤습니다.

2. 제작에 앞서 자료조사 및 재료준비


 PCB제작을 하면 간단하지만, 한 개 만들자고 하기에는 최소수량이 5~10개가 되니 배보다 배꼽이 더 커지는 상황이 납니다. 따라서 저는 변환기판으로 직접 납땜을 하기로 했고, 제작에 사용한 부품은 다음과 같습니다. SMD부품이다보니 일반적인 DIP형보다 납땜실력을 요구합니다. 정 자신이 없으면 알리익스프레스 등에서 자체제작한 모듈을 구입하는 것도 괜찮지만, 안에 무슨 짓을 했는지 알 수가 없어서 불안하다는 사람은 잘하는 사람에게 의뢰하시는 편이 좋습니다.

TPM : Infineon SLB9665TT2.0 SSOP28/0.65mm width. Digi-key, mouser 등 해외에서 직구 가능합니다.
변환기판 : SSOP28 0.65mm to DIP28 2.54mm width
만능기판 : 15x10 through hole / 2.54mm width
소켓 : 2x10 2.54mm width 

칩의 핀배열입니다.



 다음은 메인보드의 TPM포트 핀배열입니다. 주의할 점은 메인보드마다 12핀, 14핀, 20핀 등 배열이 다를 수 있으니 각자 메인보드의 핀아웃은 확인하셔야 합니다.



다음은 실제 칩과 메인보드에 연결해 줄 배선도 입니다. 이 배선도를 토대로 납땜을 시작합니다.


3. 제작


열심히 납땜합니다. 변환기판에 실장한 칩의 사진입니다. 데이터시트에서 PP(6번)와 GPIO(7번)을 저항을 통해 GND로 연결하라고 설명이 달아줬습니다.


옆면 사진입니다. 굵은 에나멜선으로 휘지않게 고정되는 타입으로 만들었습니다. 왼쪽에 보이는 20핀에 먼저 배선배치를 확실히 해놓고 그 뒤에 오른쪽의 변환기판을 붙이게끔 하면 보다 작고 깔끔하게 될 수 있었지만 중간에 망해서 이런 거미줄이 탄생하였습니다. 만들면서 몇번이고 선연결 납땜을 잘못하여 그냥 포기하고 정품 주문할까 충동을 참느라 힘들었습니다. 에나멜선은 폴리우레탄이 코팅되어있어서 맞닿아도 쇼트는 일어나지 않지만, 왠지모르게 불안하니 선간 접촉은 안되게끔 떨어뜨려놨습니다. 저래 보여도 일단은 3차원적으로 접촉이 없으며, 테스터로 측정결과 문제없었습니다.


4. 확인


완성 후 UEFI BIOS상에서 확인 및 windows에서 tpm.msc로 확인결과 문제없습니다.
펌웨어가 최신버전 상태로 출고되어 업데이트할 필요는 없었습니다.
제조업체 이름이 IFX인데 칩제조사 Infineon의 약칭입니다.

이것으로 문제없이 Windows 11로 업그레이드 할 수 있었습니다. 11로 업그레이드 후, 기왕 TPM을 달았으니 각종 보안설정이 제대로 되어있는지 확인합니다. 잘 작동하나 봅니다.

2021/05/16

[Japanese] exA-Arcadia基板でのブラウン管出力向け変換遅延と録画

ゲームセンター運営のオペレータや個人の方がexA-Arcadia(以下EXA)基板を稼働する時にブラウン管キャビネットで稼働させたい、或いはブラストなどのブラウン管しか持たなくて困ってる人はいると思います。しかしこの基板、上の公式画像と下記の通りGPUにVGA端子がついてないので使えません。

GPU側:HDMI, DVI-D
マザー側:VGA (出力なしで使用不可)

上記の通り、DVI端子もDVI-Dなのでアナログ信号は出力されません。マザ側のVGA端子はゲームで使用前提の物ではありませんので試しても何も映りません。となるとブラウン管で映す為には変換が必要です。しかしここで注意が必要です。

EXA基板は普通のPCですので液晶の640x480とは別にCRTの31KHz表示モードがありますが(解像度は同一です)、240p/480iの15KHzは対応していません。31KHz対応モニターならHDMI-to-VGAやDVI-to-VGA(アクティブタイプ)で変換すると映せます。ここまでは簡単ですが、画面が遅延はないのか気になる方もいるかと思います。

この記事は簡易的な方法ですが、同一液晶モニター2台を使用して確認したHDMI-VGAの遅延時間を確認と、EXA基板をHDMI-VGA変換でブラウン管に表示しながら録画はデジタルのまま録画した事例の記録です。変換遅延ですが、結果を先にいうと「変換遅延ありません」といって問題ないでしょう。はっきりとした結果は2ch オシロスコープが必要で、同期信号を直接測ることで遅延がわかりますが、持ってないのでそこまではテストできませんでした。録画も変換前のデジタル信号で撮れて劣化もなくチョーきれいだねーでした。31KHz結果なので15KHzだと勘違いしないように。


1.用意したもの
モニター:EIZO FlexScan EV2336W 2台 (DVI-D, VGA, DP)
PC:AMD Ryzen 3 3100 / NVIDIA Geforce GT710 / 16GB
分配器:Micomsoft ROOTY HD SP2、ATEN VS-162
基板:exA-Arcadia 1台
キャビネット:セガ ブラストシティ 1台
ケーブル:DVI 3m, DVI 1m, HDMI 2m
変換:
Lenovo LT8511 HDMI-VGA
        ごく普通のアクティブタイプ変換器です。KVCらぼさんが紹介している
   DVI-D-to-VGAもありますが、どちらでも構いません。

2. 実験
変換遅延を測定する前にまずは分配器を通した同種モニターの表示遅延の差がないかを確認しました。ここまで確認する必要はないと思いますが、一応リファレンスのためです。その後、左右モニターの中で右の方はHDMIーVGAを使って変換します。

変換前の同条件比較
モニターオプション:スケーリングなし、その他オプション全て同一
PC出力:DVI
分配器:ATEN VS-162
測定方法:スマホの960fps撮影モードでなるべく細かく撮ってフレーム切り取り
結果:関係はないかもしれませんが、極力ADボード側からスケーリングの遅延時間を避けて純粋結果のみ見たかったのでスケーリングなしにしています。720pにした理由は640x480が59.9fpsで60.0fpsにピッタリするのが720pだからでした。下の桁がどうなっているかは知りません。気持ちの問題です。簡易的な方法なのでよしとしましょう。




右のモニターが1フレーム未満で少し遅れていた時がありました。windowsのms単位時間表示はいい加減なものなのでわかりませんが、大体10ms以下でしょうね。動画でも確認しましたが稀に撮られた結果らしく、殆どの場合は差が見えませんでした。深く調べようとすると切りがありませんので、とりあえずこの程度は左右で差があるかもしれないが、考えなくていいとしておきます。


変換後実際の比較(左:DVI、右:DVIーVGA)
下の写真のようにスマホの高速撮影モードでは遅延を確認することはできませんでした。この程度なら大丈夫でしょう。


3.基板でのCRT表示モードで映す
ブラウン管向けのオプションがDIPスイッチ2で用意されているのでONにしておきます。そうしないとブラウン管に映らない場合がありますのでマニュアルで書いている通り必ずONにしておきましょう。下の写真はDIP2をONにして、HDMIーVGA変換で表示した画面です。左のモニターにDVIで直結したのも一緒に写真撮って比較しましたが、上で比較したように当然差は見えませんでした。



4.ブラストに入れて録画装置もつける。
ここでの課題はブラウン管は変換して表示するのは遅延もなく、問題なかったのですが、録画も同時にしたい場合は変換前のデジタルと変換後のアナログ信号のどちらを取るべきかです。アナログだとケーブルの長さで段々画像がノイズでぼやけてきますので、できれば変換前のデジタルで撮りたかったのです。しかし、中華版の録画機がCRTモードのデジタル信号を受け付けるか心配だったのですが、音声を予めHDMIの中に合成した後で入力してみたら問題なく録画できていました。これて劣化せずに撮れるし一安心。写真はCLUB EXAでブラストシティに入れて31KHz CRTモードで稼働した状態です。ヘッドフォンアンプの下にある中華の録画機から撮りました。まりあちゃん綺麗ですね。



5.終わりに、おまけに15KHz変換の情報
何とか苦労はせず思った通りに結果が出たので楽でした。JAMMAみたいな変数が多すぎるのは色々面倒なことまでやる必要があるのでPC基板はこういう観点で好きです。これで液晶のmsオーダーの表示遅延より桁の違いnsオーダーの遅延で遊べる環境ができました。ワッショイワッショイ

一方で、ブラウン管でしたいと思っている方の中で31KHz非対応モニター持ちの方がいらっしゃると思いますが、私が確認している事例を見る限り、31KHz→15KHz変換遅延は最低8msほどは出るのかベスト結果でした。興味がある方はGBS-8200のgbscontrol改造で調べてみてください。改造するのに半田付けも必要ですし手間かかりますが、これが今知られているの方法の中でベストです。使い勝手のいい業務用コンバータやGBS-8100など安い中華版での無遅延構成はまだ見つかっておりません。EXAで15KHz出力は対応していませんし、変換せざるを得ないので素直にマルチシンクモニターに変えるか、遅延ありのままダウンスキャンコンバータを導入するしかないと思います。



2021/02/12

[Korean] 일본 아케이드기판의 JVS규격과 그 규격에 기반한 오픈소스 I/O보드의 소개

JVS I/O의 오픈소스버전을 소개합니다. 직접 아두이노 메가/나노로 펌웨어를 입혀 DB15단자화하여 제작 가능하며, 제작된 동인기성품을 구매(3300엔)해도 됩니다. JAMMA와 JVS의 규격역사에 관해서는 포스팅 후반을 참조바랍니다.

1. MP01-IONA-JS (동인제작IO / 약 3000~4000엔)

MP01-IONA-JS (JVS ver. 3.0), 가격 일본현지가격 VAT포함 3300엔

 MP01-IONA-JS의 경우, 반응속도가 빠르고, 크기도 작고, 휠 등 아날로그를 사용하지 않는 게임의 경우 호환성이 문제없기에 재고가 생기는 즉시 매진될 정도로 인기가 있으며, 여의치 않을 경우 1만원짜리 아두이노 메가 호환품에 오픈소스 펌웨어만 입혀서 네오지오 db15단자화시킨 자작품으로 사용할 수도 있습니다. 


 한국에서는 구형 세가/캡콤/타이토 IO들을 주로 구할 수 있지만, 대부분 20년전의 초창기 규격이다보니 반응속도가 최근것에 비교해서 느린 단점이 있습니다. 지금부터 JVS기판을 위한 IO를 찾는다면 오픈소스 JVS하드웨어를 찾아보는 것도 어떨까 싶어서 정보차원에서 작성하였습니다.


MP01-IONA-JS의 서포트페이지 및 대응기판리스트, 펌웨어 업데이트 방법

MP01-IONA-JS (JVS-JAMMA I/O変換基板) サポートページ | iona-js (toyoshim.github.io)

Compatibility Information · toyoshim/iona Wiki · GitHub

MP01-IONA-JS(JAMMA-JVS) ファームアップデート備忘録 | Callus Next

SEGA         NAOMI1/2, LINDBERGH, LINGWIDE, RINGEDGE 1/2
namco       SYSTEM12, SYSTEM246/256
KONAMI    SYSTEM-573
TAITO        Type X, X2
exA-Arcadia


2. 아두이노 나노로 제작할 수 있는 JVS I/O 배선도 및 펌웨어소스



정품 아두이노기판은 비싸지만 호환기판으로 제작하면 2만원내에 제작가능한 방법입니다.
JVS IO는 캐비넷 2대를 대전용으로 사용하기도 하여 IO 2개로 캐비넷당 할당하기도 합니다.
각 회사별 IO보드에 별도 USB출력포트가 있는 이유가 daisychain으로 엮어 2개,3개,4개까지
연결하게 하기 위함이죠.

  • 재료
    • Arduino MEGA 호환기판 약 $10, 아마존, 알리익스프레스
      nano도 가능하지만 핀수가 모자라 한쪽밖에 만들 수가 없어서 2개 필요
    • 2단 DB15 male 2개
    • 101.6x53.3mm 크기 이상의 만능기판 (아두이노 메가보다 큰 것)
소스를 확인해보니 딥스위치 변경으로 VirtualOn, 스치파이마작모드도 가능한 듯 합니다.
시간날 때 직접 제작하게 되면 관련내용을 올려보겠습니다.

GitHub - toyoshim/iona: JVS IO Board by Arduino Nano


JAMMA->JVS의 역사

 아케이드 기판 하면 떠오르는 단자가 JAMMA규격인데, 이 규격이 나오기 이전인 1970년~80년대 중반까지는 각 회사별로 핀배열이 제각각이었습니다. 하네스의 생산코스트절감, 단자표준화 등의 목적을 위해 80년대 중반에 JAMMA규격이 탄생되었고, 이 규격이 길게는 25년도 넘게 다양한 게임기판에서 사용되었습니다. 

 하지만 이 규격도 90년대 중반에 들어서 기존 JAMMA배열만으로는 사용할 수 있는 버튼이 부족하여, 추가버튼을 사용할 수 있게 기판에서 별도단자가 따로 붙어있는 등 제약이 있던 상황이었습니다. 더군다나 핀배열상 화면의 해상도가 복합동기만 지원하기에 480p부터 일반적으로 사용되는 분리동기신호를 사용할 수 없었기에 90년대 후반부터는 JVS라는 신규격을 제정하였고, 최초로 사용된 기판은 1998년 SEGA의 NAOMI였습니다. 이때부터 조작부입력이 기판에서 직접 다루는 것이 아닌 별도 외부IO보드를 사용하게 됩니다. JVS의 입력조작부는 기판과 USB케이블로 연결되며, RS-485 시리얼 프로토콜로 통신합니다. 따라서 케이블은 USB를 쓰지만 전원핀이 들어갈 자리가 없기에 I/O보드의 전원을 별도로 공급해줘야 하며, USB프로토콜과는 전혀 호환성이 없습니다.

 시간이 흘러 다양한 게임에서 JVS를 채용하기 시작했고 최근에는 전용 기계를 사용하는 체감형 게임을 제외한 거의 모든 게임이 JVS규격을 사용하고 있습니다. 이 JVS도 이제는 20년이 넘다보니 도중에 규격이 갱신되어 현재 가동중인 게임들은 JVS 3.0기반으로 가동되고 있습니다. 

그렇다면 버전별로 무엇이 틀린가? 최초 1.0은 화면출력을 JAMMA가 아닌 DSUB포트에서 출력할 수 있게되어 해상도를 15k에서 31k로 보다 미려하게 표시할 수 있게된 점이 가장 큰 개선점이지만, 조작입력의 반응속도가 기존 JAMMA보다 느려졌다는 단점이 있었습니다. 이것을 차츰 규격의 버전업과 함께 하드웨어의 개선을 통해 현재에 이르렀고 고속I/O가 등장하기에 이르렀습니다. 하지만 이런 고속 I/O들은 신형 캐비넷과 함께 붙어서 나왔기에 개별로 구매하기에는 어려운 점이 있기에, 한국에서는 사실상 철권을 가동하던 남코 느와르 캐비넷이나, 일본에서 직접 타이토 뷰릭스의 최신사양을 구매하는 수밖에 없없습니다.

 그런데 최근에는 개인이 오픈소스로 JVS IO를 제작하는 사람들이 나타났고, 몇가지 종류의 IO펌웨어와 제작법이 github에 공개되어 있으며, 일본의 경우 이런 제작된 동인하드웨어를 각 기판샵에서 적은 수량이지만 저렴하게 구매할 수 있게 되었습니다. 그 중 하나를 소개하자면, 아래 사진은 AVR칩에 펌웨어를 담아 잠마배선으로 바꿀 수 있게 해주는 MP01-IONA-JS 라는 JVS I/O입니다. 현존하는 I/O중 가장 반응속도가 빠르다고 알려져 있으며, 이와 비등할만한 것은 동일인물이 제작한 exA-Arcadia 전용의 I/O보드가 있습니다. 


exA-Arcadia 전용 I/O (JVS ver. 3.0). 공식홈페이지가격 75달러

[English] Datapath VisionRGB-E2/E2S via current generation PC

 Once I started capturing games with capture card from 10 years ago, I got experience some some of cards. I think the best one for from 15Khz to 1080p is Datapath VisionRGB-E2S. Ideally, VisionRGB can accept all of refresh rate if it is in bandwidth of itself (480MB/s for E2 and 650MB/s for E2S). So if you try to capture the Arcade PCB games those are abnormal refresh rate signal as following list with consumer capture device, you can see tearing or out of range message on display.

  • Midway's 52Hz
  • Seibu Kaihatsu Raiden Fighters 54Hz
  • Seibu Kaihatsu Seibu cup Soccer 55Hz
  • Sega Virtua Fighter 2 57Hz
  • Other Arcade Games those are not NTSC/PAL standard.

 Consumer grade capture device only have standard EDID/DDC information. This means they only guaranteed 25 and 50Hz for PAL and 29.97 and 59.94Hz for NTSC (not mentioning for cinema frame rate in this post). There are two well-known devices that can capture such non-standard games, Yuan Hightech SC-500N1(Micomsoft SC-500N1) or later,  VisionRGB-E2/E2S. However even if SC-500N1 can accept non-standard signal, it would not be means all of non-standard signal. So as far as I know, the only solution for everything is VisionRGB.


 Nowadays this devices still can use the new system, but you MUST read carefully this post. When I try to replacing the old intel system to new AMD system, I encountered serious compatibility problem. This is the report for try and error. 

Do NOT use VisionRGB-E2 or E2S with Supermicro H12SSL series.
The PCIE 4.0 slot will cause beeping POST or just black screen. The most worse case is brick the CPLD chip on
motherboard which is for IPMI and some core system components. I recommend you should buy USB type capture devices. 


Old system
CPU: Intel core i3-4130
GPU: integrated in CPU
MEM: Samsung PC3-12800U 4GBx2
MB: GIGABITE H81M-DS2
Capture1: Datapath VisinoRGB-E2
Capture2: IEI HDC-302e
OS: Windows 10 pro x64

Confirmed working system
CPU: AMD Ryzen 3 3100
GPU: NVIDIA Geforce GT610 (modified to UEFI BIOS)
MEM: Teamgroup PC4-25600U 8GBx2
MB: MSI B450-A PRO MAX
Capture1: Datapath VisinoRGB-E2 (PCI_E4 2.0 16x slot/data as 4x)
Capture2: IEI HDC-302e (PCI_E6 2.0 1x)
OS: Windows 10 pro x64

Did not worked system
CPU: AMD EPYC 7302P
GPU: NVIDIA Geforce GT610 (modified to UEFI BIOS)
MEM: Samsung PC4-25600R 16GBx8
MB: Supermicro H12SSL-NT
Capture1: Datapath VisinoRGB-E2 (any PCIE slot)
OS: Windows 10 pro x64

I think the problem was from legacy compatibility on PCIE4 or SoC in Supermicro motherboard. When I insert VisionRGB in H12SSL after installed windows 10, I can hear very small beep sound and cannot boot properly. I tried modifying some options in BIOS that was also not resolved. Then suddenly CPLD chip has broken, I cannot boot windows with UEFI mode, only can use BIOS boot. The IPMI and ethernet chips has completely dead. So I sent RMA as twice for this problem.

 Then I googled other cases with new generation system. There is one guy I found who has AMD threadripper system with MSI motherboard, VisionRGB has no issue in that system. So I bought my confirmed system set then has no issue. I'm guessing that the key point is compatibility for PCIe 1.1, PCI-X, or option ROM.

Here's the HWINFO log for VISIONRGB-E2 as follow.

General Information
Device Name:            Pericom PI7C9X130 PCI Express to PCI-X Bridge
Device Class:             PCI-to-PCI Bridge
Revision ID:              4
Hardware ID:            PCI\VEN_12D8&DEV_E130&SUBSYS_00000000&REV_04
PCI-X Mode:             PCI-X 133
PCI Express  Version:   1.1
Maximum Link Width:  4x
Maximum Link Speed:  2.5 GT/s
Current Link Speed:     2.5 GT/s
Device/Port Type:        PCI Express-to-PCI/PCI-X Bridge


Here's the example for MSI B450-A PRO MAX.


I'm using slot1 for GPU, slot4 for VisionRGB-E2, slot6 for HDC-302E and M2 slot for SSD. The manual explain slot2, 3 and 5 are unable to use when I using both slot 1 and 4. The 2.0 x4 sufficiently fitted for VisionRGB-E2 (Unidirectional bandwidth of PCIE 2.0 1x is 500MB/s).


Hope this post will be helpful and informative for everyone.


useful link
Nerdly Pleasures: Proper Analog Retro Video Capture with the Datapath E1/E1s